안드로이드 14에서 Play Core 라이브러리 작동 호환성을 확보하기 위한 마이그레이션 방법.
들어가며...
지난주, 구글 플레이 팀으로부터 한 통의 메일을 받았다.
현재 Trindex 앱에서 사용 중인 Play Core 1.10.3 라이브러리가 안드로이드 14(API level 34)에서는 더 이상 호환되지 않을 모양이다. 8월 31까지 새로운 버전으로 업데이트한 뒤 제출하라고 한다.
Play Core? 어디에 쓰는 물건인고?
일단 Play Core 라이브러리가 어떤 기능을 하는 애인지, 또, 왜 사용하게 된 건지 정확히 기억나지 않았다. 그래서 denpendencies의 implementation 문을 주석 처리하고, Sync 및 빌드 시도를 해 보았다.
그러자 위와 같이 빌드 오류가 발생하면서...
Play Core 용도를 단번에 파악할 수 있게 되었다. Trindex 앱에서는 인앱 리뷰를 가능하게 만들기 위해 사용하고 있었는데, 해당 기능을 구현한 코드와
그 코드를 사용하기 위해 import 한 패키지들에 오류 표기가 되었다. 이 부분들을 해결해 주는 것이 이번 작업의 목표라 할 수 있겠다.
Play Core 마이그레이션 방법
앞서 확인된 import 오류는 크게 play.core.review.*와 play.core.tasks.*로 나눠볼 수 있다. 구글 플레이 팀이 제공하는 마이그레이션 가이드를 보면...
https://developer.android.com/guide/playcore?hl=ko
기존 단일 Play Core 라이브러리가 4개의 라이브러리로 나뉜 것으로 파악되는데, 그중 review.*에 해당되는 패키지를 다음과 같이 기존 implementation 대신 사용했다.
dependencies에 추가 후 sync를 하면
예상했던 것처럼 play.core.review.*와 관련된 import 문제는 모두 해결된다. 남은 것은 play.core.tasks.*와 관련된 import 문제인데,
가이드에 명시된 것처럼 위와 같이 gms.tasks.*로 대체해 주면 된다.
import 문제를 모두 해결하고 다시 인앱 리뷰 코드로 가보면 오류의 대부분이 해결된 것을 볼 수 있다. 하지만 getErrorCode() 메소드 호출 부분은 여전히 문제가 있다. 현재까지 확인된 바로는 getErrorCode() 메소드가 더 이상 지원되지 않는 것으로 보인다.
따라서 해당 부분을 위와 같이 적당히 대체해 주었다. 다시 import 부분으로 돌아가 보면 더 이상 사용하지 않는 패키지들이 비활성화된 모습을 볼 수 있는데,
해당 코드들을 정리해 주는 것으로 이번 Play Core 관련 마이그레이션 작업을 마무리했다. 테스트해 보니 일단 별문제 없이 동작하는 것으로 보인다.