728x90
반응형
구글에 앱을 올리고 수정한 후 업데이트를 자동으로 할 수 있게 할 수 있는 방법을 찾다가
Unity에서 제공하는 SDK에서 사용하는걸 찾았다.
아무리 찾아봐도 기본 밖에 적용한 사례가 나오지 않았다.
심화 작업을 해보고 싶었는데..
일단 참고 사이트
https://developer.android.com/guide/playcore/in-app-updates/unity?hl=ko
이걸 보면서 하나씩 찾아서 해보았음.
유튜브랑 블로그 찾아보면서 했는데 심화 가정은 없더라..
그래서 이것저것 해보면서 했다.
반응형
Start()함수에 있는 유연한 업데이트나 즉시 업데이트를 사용하면된다.
난 다운로드 진행률을 보여주기 위해서 유연한 업데이트를 선택했다.
FlexibleAppUpdateOptions()를 사용하는데
즉시 업데이트를 사용하고 싶으면 ImmediateAppUpdateOptions()를 사용하면 된다.
AppUpdateManager appUpdateManager;
AppUpdateOptions appUpdateOptions;
AppUpdateInfo appUpdateInfoResult;
void Start()
{
appUpdateManager = new AppUpdateManager(); //앱매니저 정의
//유연한 업데이트 진행
appUpdateOptions = AppUpdateOptions.FlexibleAppUpdateOptions();
//즉시 업데이트 진행
//appUpdateOptions = AppUpdateOptions.ImmediateAppUpdateOptions();
StartCoroutine(CheckForUpdate());
}
IEnumerator CheckForUpdate()
{
//가능한 업데이트가 있는지 확인
PlayAsyncOperation<AppUpdateInfo, AppUpdateErrorCode> appUpdateInfoOperation = appUpdateManager.GetAppUpdateInfo();
//업데이트 정보를 받아올대까지 기다린다.
yield return appUpdateInfoOperation;
if(appUpdateInfoOperation.Error.Equals(AppUpdateErrorCode.ErrorUnknown))
{
Debug.Log("에러가 몇개 있다.");
}
//업데이트 정보받기 성공
if(appUpdateInfoOperation.IsSuccessful)
{
//업데이트 정보 정의
appUpdateInfoResult = appUpdateInfoOperation.GetResult();
if(appUpdateInfoResult.UpdateAvailability.Equals(UpdateAvailability.UpdateAvailable))
{
Debug.Log("업데이트가 있다.");
StartCoroutine(StartFlexibleUpdate());
}
}
else
{
Debug.Log("업데이트가 없다.");
}
}
//즉시 업데이트
IEnumerator StartImmediateUpdate()
{
//요청자의 앱 내 업데이트 흐름을 모니터링 하는데 사용할 수 있는 앱 업데이트 요청을 한다.
var StartUpdateRequest = appUpdateManager.StartUpdate(
appUpdateInfoResult, //PlayAsync Operation에서 반환한 결과. 결과 가져오기
appUpdateOptions //요청된 앱 내 업데이트 및 해당 매개 변수를 정의하는 앱 업데이트 옵션이 생성됨.
);
yield return StartUpdateRequest;
//업데이트가 성공적으로 완료되면 앱이 다시 시작된다.
//여기에 도달한다면 실패처리가 되었다는 뜻. 오류는 사용자에게 메시지 표시함.
}
//유연한 업데이트
IEnumerator StartFlexibleUpdate()
{
//요청된 앱 내 업데이트 흐름을 모니터링하는데 사용할 수 있는 앱 업데이트 리퀘스트 요청
var startUpdateRequest = appUpdateManager.StartUpdate(
appUpdateInfoResult, //PlayAsync Operation에서 반환한 결과. 결과 가져오기
appUpdateOptions //요청된 앱 내 업데이트 및 해당 매개변수를 정의하고 앱 업데이트 옵션이 생성.
);
while (!startUpdateRequest.IsDone)
{
//여기서 다운로드 되는 진행 표시바 만들 수 있다.
yield return null;
}
StartCoroutine(CompleterFlexibleUpdate());
}
IEnumerator CompleterFlexibleUpdate()
{
var result = appUpdateManager.CompleteUpdate();
yield return result;
//업데이트가 성공적으로 완료되면 앱이 다시 시작된다.
//여기에 도달하면 실패로 처리. 오류는 사용자에게 메시지 표시함.
}
내부 테스트를 해보면서 작업을 해봤는데.. 버전 25까지 올라갔다... 진짜 ... 인내의 끝판왕!
결국 성공했지!! 복잡한것도 싫고, 난 진행 표시바만 있으면 되니깐!!
위에 있는 코드로 하면 기본적인게 가능하다.
진행 표시바를 하고 싶으면 while()문에 슬라이더를 넣어서 사용하면된다!!
모두들 인내를 가지고 성공하시길~!!!
728x90
반응형
'Unity' 카테고리의 다른 글
[ UNITY ] Unity In-App Purchasing requires Unity Gaming Services to have been initialized before use (0) | 2023.02.09 |
---|---|
[ UNITY ] ToggleGroup 사용 방법 (0) | 2023.02.07 |
[ UNITY ] (2/2)인앱 결제, In-App Purchasing, 유니티 IAP사용하기 (0) | 2023.01.27 |
[ UNITY ] (1/2)인앱 결제, In-App Purchasing, 유니티 IAP사용하기 (0) | 2023.01.27 |
[ UNITY ] Library/Search/propertyAliases.db 등 에러 날때 (0) | 2023.01.17 |
댓글