
Google Play Consoleに登録するためのaabファイルの署名に困った時の話
対象読者
・Google Play Consoleにaabファイルを登録したい人
・VSCodeでFlutterアプリを作っている人
・GitHubでPublicリポジトリで公開している人
・署名用ファイル管理が面倒くさい人
困ったこと
Google Play Consoleにaabファイルを登録しようとしたところ、署名で弾かれてしまった。
アプリ署名はGoogle Play Consoleで自動設定済。
アプリ署名は必要ないが、アップロード鍵での署名は必須だと判明。
調べてみると、keyを作成してgradleで設定して、Githubに公開されないように管理してあげればよさそう。
だけど管理するの大変そうだな……
まず結論
署名付きaabファイルを生成する時だけAndroid Studioを使うことにしました。
……はい、多分普通のやり方だと思います。
自分みたいになんとなくVSCodeを使って同じ悩みを抱えてしまった方、Android Studioだと楽ですよ!
経緯
普段はVisual Studio CodeでFlutterアプリを作成。
開発中はflutter build apkコマンドでAndroid実行用のapkファイルを作成していました。
Google Playでの公開に向けてデベロッパーアカウントを作成したので、まずは内部テスト用にアプリを登録することにします。
Google Play Consoleに登録する際は、実行用のapkファイルではなく、App Bundle (aab)ファイルを登録するみたいです。
多分次のコマンドでいけるはずです。
flutter build appbundle --release
無事aabファイルが生成できました。
今は署名はGoogleがやってくれると書いてあったので、このaabファイルで登録できるはず……
弾かれました。
署名しないといけないようです。
調べてみたところ、署名には2種類あるみたいです。
①アプリが本物かどうかを証明するためのアプリ署名
→Googleが署名してくれるので、意識しなくてもOK
②アップロードのための署名
→自分で署名する必要があります。
(ただ、もし紛失してもGoogle Play Consoleに再登録できるようです)
なるほど、アップロード鍵で署名すればいいのか
方法を調べてみよう
方法① gradleで設定
→keyを作成して、gradleでビルド時に署名する
→GitHubで公開していると管理が大変そうです
方法② 署名無しaabファイルに対してコマンドで署名
→コマンドにまだパスが通っていないようです
ちょっと大変そうです
他に方法はないかな?
Android Studioには署名付きaabファイルの生成機能があるようです。
使ってみました。
初回、キーをGitの外側に生成して、パスワードを保存にチェックをいれます。
次回以降、クリックをするだけで署名付きaabファイルを生成できるようになりました。
無事、Google Play Consoleでも問題なく取り込めるようになりました。
解決です。