ゴイサギ日記

東京でエンジニアとして頑張って何とか生きてます。。ゆる~く更新していきます

【Unity】Android13対応メモ

Unityで開発したAndroidアプリを Android11 → Android13 に上げた際の色々を備忘録的に書いておく

経緯

GooglePlay に公開した Androidアプリが「アプリの安定性」に関わるポリシー違反に該当するとのメールを受信、対象アプリの Firebase Crashlytics を確認したところ、Android12以上端末で起動するとクラッシュする

以下はクラッシュ時のログ

Fatal Exception: java.lang.IllegalArgumentException
com.sample.app: Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be specified when creating a PendingIntent. Strongly consider using FLAG_IMMUTABLE, only use FLAG_MUTABLE if some functionality depends on the PendingIntent being mutable, e.g. if it needs to be used with inline replies or bubbles. 

対策

対象アプリを記事作成時点(2023年11月)で対応必須となっている Android 13 に上げます。

Project Settings 更新

Minimum API Level は 21 を設定
Target API Level は 33 を設定

Custom Main Manifest にチェック
Custom Main Gradle Template にチェック
Custom Gradle Properties Template にチェック

Assets/Plugins/Android/AndroidManifest.xml に以下を追加

<uses-permission android:name="com.google.android.gms.permission.AD_ID"/>

Assets/Plugins/Android/mainTemplate.gradle の dependencies に以下を追加

implementation 'androidx.work:work-runtime-ktx:2.7.0'

Assets/Plugins/Android/gradleTemplate.properties に以下を追加

android.useAndroidX=true
android.enableJetifier=true

その他

以下のエラーが出る場合、Assets/Firebase/Editorをこちらに置き換える

DllNotFoundException: Unable to load DLL 'FirebaseCppApp-6_15_2': The specified module could not be found.