UnityでAndroid App Bundle(AAB)対応してリリースするまで

丁寧に書いてる記事ではなく、同じ問題で困ってる人が見ると良い感じに分かる記事です。

署名する

  • keystoreを作る
  • パスワードは保存されないのでビルド時によしなに設定する。
PlayerSettings.Android.keystoreName = ~~~;
PlayerSettings.Android.keystorePass = ~~~;
PlayerSettings.Android.keyaliasName = ~~~;
PlayerSettings.Android.keyaliasPass = ~~~;

このリリースは Google Play の 64 ビット要件に準拠していません

  • 開発中はビルド早くしたかったのでIL2CPPを切っていた。
  • これは単純にIL2CPP有効にしてARM64をターゲットに入れれば良い。
PlayerSettings.SetScriptingBackend(BuildTargetGroup.Android, ScriptingImplementation.IL2CPP);
PlayerSettings.Android.targetArchitectures = AndroidArchitecture.ARM64 | AndroidArchitecture.ARMv7;

APK が最適化されていません

解決策: Android App Bundle を使用してデバイスの設定に合わせて自動的に最適化するか、複数の APK を使って自分で管理します。

分割APK

分割APK(PlayerSettings.Android.useAPKExpansionFiles)でいけるならそれでいいか、とビルドしてみたものの同じ警告が出てダメだった。理由は不明。

.aabを作る

  • ビルドする。
  • これで一件落着。

GooglePlayConsoleにあげる

  • と思ったら、まだ終わっていない。
  • 作ったaabファイルをGooglePlayConsoleにアップロードすると「Googleでアプリ署名鍵の管理、保護を行ってください」とエラーを吐かれて弾かれる。
  • 「アプリの署名」、3択の正解は「Java Keystoreから鍵をエクスポートしてアップロードする」
  • java -jar pepk.jar --keystore=(Unityから吐いたkeystore) --alias=*** --output=***.pem --encryptionkey=*** で作ったpemをあげる。