본문 바로가기
개발/C#

유니티 C# 서버 없이 인앱 업데이트 간단 구현 Play Update

by SPNK 2024. 3. 14.
반응형

SDK 다운로드

 

Unity용 Google 패키지 살펴보기  |  Google for Developers

이 페이지는 Cloud Translation API를 통해 번역되었습니다. Unity용 Google 패키지 살펴보기 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. Unity용 Google 공식 패키지

developers.google.com

 

코드 작성

#if UNITY_ANDROID
using Google.Play.AppUpdate;
using Google.Play.Common;
#endif
#if UNITY_ANDROID
    IEnumerator CheckForUpdate()
    {
        yield return new WaitForSeconds(0.5f);
    
        AppUpdateManager appUpdateManager = new AppUpdateManager();

        PlayAsyncOperation<AppUpdateInfo, AppUpdateErrorCode> appUpdateInfoOperation = appUpdateManager.GetAppUpdateInfo();

        yield return appUpdateInfoOperation; //업데이트 가능한지 체크 중

        if (appUpdateInfoOperation.IsSuccessful)
        {
            var appUpdateInfoResult = appUpdateInfoOperation.GetResult();

            if(appUpdateInfoResult.UpdateAvailability == UpdateAvailability.UpdateAvailable)
            {
                var appUpdateOptions = AppUpdateOptions.ImmediateAppUpdateOptions();

                var startUpdateRequest = appUpdateManager.StartUpdate(appUpdateInfoResult,appUpdateOptions);
                
                while(!startUpdateRequest.IsDone)
                {
                    if(startUpdateRequest.Status == AppUpdateStatus.Downloading)
                    {
                        Debug.Log("업데이트 다운로드 진행중");

                    }
                    else if(startUpdateRequest.Status == AppUpdateStatus.Downloaded)
                    {
                        Debug.Log("다운로드가 완료");
                    }

                    yield return null;
                }

                var result = appUpdateManager.CompleteUpdate();

                while(!result.IsDone)
                {
                    yield return new WaitForEndOfFrame();
                }

                yield return (int)startUpdateRequest.Status;
            }
            else if(appUpdateInfoResult.UpdateAvailability == UpdateAvailability.UpdateNotAvailable)
            {
                Debug.Log("업데이트가 없습니다");
            }
        }
        else
        {
            Debug.Log("업데이트 에러");
        }
    }
#endif

 

 

Proguard 사용시

-keep class com.google.android.play.core.** { *; }

 


인앱 업데이트 설명서

 

인앱 업데이트 지원(Unity)  |  Android 개발자  |  Android Developers

이 페이지는 Cloud Translation API를 통해 번역되었습니다. 인앱 업데이트 지원(Unity) 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 이 가이드에서는 Unity를 사용

developer.android.com

 

반응형

댓글