Google Play Consoleにaabファイルをアップロード出来なかった話
目次
はじめに
タイトルにも書いた通り、Google Play Consoleにaabファイルをアップロード出来ませんでした。
悪戦苦闘の末、何とか解決出来たのでメモを兼ねて手順を残しておきたいと思います。
環境
- Unity2020.3.25f1
- Android
- API31以上
- FirebaseのPush通知を利用(それ以外のPush通知があるかは知らない
エラー内容
アプリがリリース間近!
aabファイルがアップロードされたぞ…!
でーーーーん。
アップロードされた APK または Android App Bundle には、インテント フィルタを使用するアクティビティ、アクティビティ エイリアス、サービス、またはブロードキャスト レシーバが含まれていますが、'android:exported' プロパティ セットは使用されていません。このファイルは Android 12 以降にはインストールできません。詳細: developer.android.com/about/versions/12/behavior-changes-12#exported
????......ちーーーーん。
試したこと(失敗談)
エラー文でググってみると、ブログなどには
android:exported="true"
をAndroidManifest.xml
の7~9行目に追加すればOK と書かれていたのですが、自分の場合には上手くいきませんでした…。
おそらくですが、私の環境だとandroid:exported="true"
を書くべき箇所がビルド中(?)に追加される要素となっているのかなと思っています。なので、ビルド前にAndroidManifest.xml
を弄っても意味ないのかなと…。(多分)
解決方法
海外のサイトや掲示板、動画の海を漂って解決できた方法を以下に。
(まさかUnityでビルドしない日が来るなんてね…)
- Unityから Export Projectでエクスポート
- Android Studioで開く
- AndroidManifestのファイル(lancherフォルダ配下)を開く
- Merged Manifest タブを開いて、exported に関するエラーが出ていることを確認
- エラー内容のリンクを踏むとファイルが開くはず(自分の環境は開かなかったので直接開いた→ unityLibrary/manifests/AndroidManifest.xml)
- エラーのニョロニョロが出ているので、android:exported="true" を追加する。
- Merged Manifest タブを開いて、exported に関するエラーが消えていることを確認
- ヘッダーメニューの Build > Generate Signed Bandle / APK を選択
- Android App Bundle を選択 → Keystoreの設定 → release を選択(リリースを行う場合)
- ビルド後に吐き出されるaabファイルがアップロードできるようになってるはず!
おわりに
「え?ビルドの度にこれやるの?面倒じゃね…?」
と思ったあなた。その通りです!
ビルド中(?)のファイルに手を加えるといった処理をUnity内で書ける
⇒ 手作業でこんなことやらなくても良いかも
みたいな噂を聞いたのですが、沼の香りがしたので放置中です。
ゴリゴリゴリラのプログラマーさん、情報をお待ちしております!