Google Play Core 라이브러리를 이용하면 유저가 플레이스토어 앱을 열지 않아도, 인앱에서 바로 업데이트를 진행 할 수 있다.
개발하는 방법도 그리 어렵지 않으나, 문제는 테스트를 어떻게 하느냐이다. 테스트를 위해 스토어에 업로드를 할 순 없으니 말이다.
FakeAppUpdateManager 라는 테스트 라이브러리가 제공되기는 하나, userCancelsDownload()
처럼 각 상황별로 시뮬레이션 코드를 새로 작성해야하는 번거로움이 있다.
내부 앱 공유를 이용하면 인앱 업데이트를 테스트 할 수 있다. 참고로 내부 테스트 트랙과는 다른 것이다. 내부 앱 공유는 앱을 업로드 하는 즉시 사용할 수 있다. 내부 앱 공유로 업로드된 아티팩트는 App Bundle 탐색기에 표시되지 않으며 테스트 또는 프로덕션 트랙의 버전에도 포함되지 않는다. 그리고 60일이 지나면 자동으로 만료되어 사라진다.
- Google Play 스토어 앱의 메뉴 > 설정에 들어간다.
- 정보란의 Play 스토어 버전을 6번 터치한다.
- 내부 앱 공유 옵션이 표시되면 사용을 설정한다.
커맨드 창에서 ./gradlew bundleRelease
를 입력하여 앱 번들을 빌드한다.
project-name/module-name/build/outputs/bundle
에 빌드된 앱 번들을 내부 앱 공유에 업로드 한다.
업로드가 완료되면 다운로드 링크를 복사한다. 링크를 통해 앱을 다운받는다.
build.gradle
의 버전코드를 한단계 올리고 번들을 한번 더 빌드한다.
새로운 버전의 앱번들을 업로드 한다. 링크가 생성되면 클릭을 하되 '업데이트' 옵션이 표시되는 것 만 확인하고, 업데이트는 진행하지 않는다.
앱을 열면 앱이 새로운 버전을 감지하여 인앱 업데이트가 실행된다.
당연한 얘기지만, 버전코드가 낮거나 같으면 인앱업데이트가 실행되지 않으니 버전 설정을 꼭 해야한다.