본문 바로가기

Programming/Xamarin

Xamarin forms Playstore android app 강제 업데이트

반응형

 

상황에 따라 안드로이드 앱에서 업데이트를 강제하는 것이 필요할 수 있다.

(예를 들어 해당 업데이트에 프로토콜이 변경되었다거나..)

하지만 앱에서 플레이스토어에 최신 버전 정보를 요청하는 것은 기본적으로 막혀있다.

이러한 이유로 강제업데이트를 하려면 앱의 최신 버전 정보를 가지고 있는 무엇(예시에선 앱의 서버)인가가 필요하다.

 

업데이트 로직은 다음과 같다.

1. 앱 실행시 최신 버전 정보 요청

2. 버전정보 받음

3. 최신버전정보와 자신(android app)의 버전 정보 비교

4. 전달받은 버전이 더 높으면(=업데이트가 필요하다) 앱 종료 및 플레이스토어로 링크

4-2. 그렇지 않을경우 앱 정상 실행

 

코드로 보면 대강 아래와 같다.

var latestVersionString = Task.Run(async () =>
                {
                    return await ServerApi.GetLatestAndroidVersionAsync();
                }).Result;

                var currentVersionString = DependencyService.Get<IApplicationManager>().GetVersionName();

                var currentVersion = new Version(currentVersionString);
                var latestVersion = new Version(latestVersionString);

                if (currentVersion.CompareTo(latestVersion) < 0)
                    return true;
                else
                    return false;
반응형