유니티 AdMob 업데이트
개요
유니티 AdMob을 업데이트할 때 생겼던 일입니다. 기존 프로젝트가 유니티 2020버전을 사용하고 있고 2년 전 AdMob을 미디에이션을 추가하기 위해 최신 버전으로 업데이트시켜야 했죠.
처음에는 단순하게 작동하는 버전을 찾아보려고 했습니다. 그래서 최신 버전에서 빌드할 때 오류나면 버전을 내리는 방식으로 진행했었죠. 그런데 v7.0.1 버전까지 내려가는 것을 보고 나선 이렇게 해선 해결할 수 없고 최신 버전에서 오류를 해결해야겠다고 생각했습니다.
그 과정에서 생겼던 일들을 공유해 보고자 합니다.
Deprecated API
UnityPlayerActivity.java uses or overrides a deprecated API.
첫 번째로 생겼던 오류는 deprecated 된 api 를 사용한다는 오류였습니다. 사실 아직도 왜 이런 문제가 생겼는지 이해하지 못했고 어렴풋이 유니티 버전이 문제가 된 게 아닐지 하는 생각을 했습니다.
해결했던 방법은 launcherTemplate.gradle 을 수정해서 옵션을 추가해 주는 방식으로 해결했습니다.
// Assets\Plugins\Android\launcherTemplate.gradle
apply plugin: 'com.android.application'
dependencies {
...
implementation 'androidx.multidex:multidex:2.0.1'
}
android {
...
defaultConfig {
...
multiDexEnabled true
}
...
}
play-services-ads:22.4.0
com.google.android.gms.play-services-ads-lite-22.4.0\AndroidManifest.xml:48:5-117: AAPT: error: unexpected element <property> found in <manifest><application>.
위의 문제를 해결하고 나니 이번에는 다음과 같은 오류를 찾을 수 있었습니다. 이 문제는 처음에는 element tag 를 인식하지 못하는 것으로 판단해서 상위 버전으로 업그레이드하려고 해봤지만 22.4.0 버전이 최신 버전이었고 찾아보니까 되려 버전을 낮춰야 한다고 해서 버전을 22.3.0 버전으로 낮춰줬습니다.
근데 버전을 낮춰주려고 보니까 이미 22.3.0 버전으로 정의가 되어있어서 다시 한번 Force Resolve 를 진행해 봤는데 그래도 여전히 22.4.0 버전으로 설치가 되었습니다.
나중에 알고 보니까 단순하게 숫자 표시만 했을 때는 해당 버전 이상의 최신 버전을 설치하는 것으로 보였고 특정한 버전을 설치하도록 강제하는 문법이 따로 있길래 수정해 주었습니다.
// Assets\GoogleMobileAds\Editor\GoogleMobileAdsDependencies.xml
<androidPackages>
<androidPackage spec="com.google.android.gms:play-services-ads:[22.2.0]">
<repositories>
<repository>https://maven.google.com/</repository>
</repositories>
</androidPackage>
</androidPackages>
저는 이 두 가지 방법을 통해서 유니티 AdMob 버전을 최신화 하는데 성공했습니다.
생각보다 최신 버전보다 많이 예전 버전이 작동했고 이런 판단 미스 때문에 버전을 찾는데 많은 시간을 소요했음에도 실질적으로 사용하지 못하고 최신 버전에서 버그를 수정하는 것으로 결정함에 있어 방향을 잡는 것이 얼마나 중요한 것인지 알게 되었습니다.
Leave a Reply
Want to join the discussion?Feel free to contribute!