Unity로 만든 게임이 Google Play Store에 Live되고 있는데
Update your Play Core Maven dependency to an Android 14 compatible version! Your current Play Core library is incompatible with targetSdkVersion 34 (Android 14)
라는 이메일이 날라왔다.
Play Core? Play Core가 뭐지
처음엔 gradle에 해당 버전의 라이브러리가 있을테니 그거 버전 올려서 다시 업데이트하면 되지 라고 생각했으나 내 gradle에 play core라는 라이브러리는 존재하지 않았다
우선 검색해서 찾아보니
https://developer.android.com/reference/com/google/android/play/core/release-notes
Play Core는 1.10.3을 2022년 1월을 마지막으로 더이상 업데이트 하지 않았고 그 이후로는 Play Asset Delivery Library, Play Feature Delivery Library, Play In-App Reviews Library, Play In-App Updates Library로 세분화되어 관리되고 있었다.
하지만 나는 프로젝트네 Play Core를 넣은적이 없는데 왜 이런 에러가 날까 찾아보니
Unity에서 게임을 만들때 게임의 용량이 크다보니 Split Application Binary 옵션을 사용했는데 이 옵션을 사용하면서 자동으로 이 라이브러리가 들어간것으로 보였다.
문제가 되는 앱의 aab 파일을 받아 압축을 풀어 dependencies.pb를 열어보니 play core 1.10.0이 들어간것으로 확인되었다
유니티 자체에서 Split Application Binary 옵션을 사용하면 저 라이브러리를 사용하는 문제라 이 이슈를 해결하기 위해선 유니티 버전을 올리는것 밖에 없어 보였다.
필자의 경우 Unity 2021.3.36f1으로 버전을 업데이트 했더니 해당 이슈는 더 이상 일어나지 않았고 Unity 2021.3.36f1은 Play Core가 아닌 Play Asset Delivery 2.1.0을 사용하는 것으로 보였다. Play Asset Delivery 2.1.0은 Android 14를 지원하는 버전이다