Edited at

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をあげる。