Google Play のデベロッパーアカウント作成からアプリのテスト配布(内部テスト)まで - Flutter / Android
March 30, 2022
自分用メモ。始めて作成した Flutter アプリを Google Play 経由で内部テスト配布したときの手順。
事前注意事項 #
組織名がデフォルトの com.example
であるか、またはこれからはじまっているもの(例:com.example.my.app
)は、Google Play Console にアップロードするときにエラーとなってしまう。
お試しでハローワールドアプリを作成・デプロイする場合であっても、com.example
以外の組織名を付与すること。
flutter create my_flutter_app -i swift -a kotlin --org com.my.app
0. 参考資料 #
Flutter のアプリを Android 用にビルドする #
以下の Flutter ドキュメントを参考に進める。(本記事もこれをなぞっているに過ぎない。本記事内に登場する引用文はこの記事のもの。)
- Build and release an Android app | Flutter
- https://docs.flutter.dev/deployment/android
日本語の記事で言えばこちらも参考になる。
- Flutter でリリースビルドする方法 | enoiu
- https://enoiu.com/app-develop/flutter-release/
Google Play Console で内部テスト用にアプリを公開する #
以下のヘルプページが参考になる。
- オープンテスト版、クローズド テスト版、内部テスト版をセットアップする - Play Console ヘルプ
- https://support.google.com/googleplay/android-developer/answer/9845334
1. アプリに署名する #
Play Store に ビルド資産をアップロードするためにキーを作成して署名する必要がある。
To publish on the Play Store, you need to give your app a digital signature.
On Android, there are two signing keys: deployment and upload. The end-users download the .apk signed with the ‘deployment key’. An ‘upload key’ is used to authenticate the .aab / .apk uploaded by developers onto the Play Store and is re-signed with the deployment key once in the Play Store.
1-1. Java の keytool のインストール場所を確認する #
flutter doctor -v
する。
[✓] Android toolchain - develop for Android devices (Android SDK version 32.0.0)
• Android SDK at /Users/********/Library/Android/sdk
• Platform android-32, build-tools 32.0.0
• Java binary at: /Applications/Android
Studio.app/Contents/jre/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7281165)
• All Android licenses accepted.
Java binary at: /Applications/AndroidStudio.app/Contents/jre/Contents/Home/bin/java
と出力される。java と同じ階層に keytool
もインストールされているため keytool
は以下にある。
/Applications/Android\ Studio.app/Contents/jre/Contents/Home/bin/keytool
1-2. Java キーストア(jks)を作成する #
keytool
が先の場所にある場合、以下を実行すればホームディレクトリにキーストアが生成される。
/Applications/Android\ Studio.app/Contents/jre/Contents/Home/bin/keytool -genkey -v -keystore ~/app-upload-keystore.jks -keyalg RSA -keysize 2048 -validity 10000 -alias app-upload
キーはどこに置いても良いが決して公開しないこと。
keep the keystore file private; don’t check it into public source control!
1-3. アプリからキーストアを参照させる #
[project]/android/
ディレクトリ直下に key.properties
ファイルを作成し以下を記載する。
key.properties
storePassword=[キーストアに設定したパスワード]
keyPassword=[キーストアに設定したパスワード]
keyAlias=app-upload(キーストアに設定したエイリアス)
storeFile=/Users/[ユーザ名]/app-upload-keystore.jks(キーストアのパス)
こちらも決して公開しないこと。
Keep the key.properties file private; don’t check it into public source control.
2. ビルドの設定をする #
2-1. Gradle の設定を編集する #
Gradle(ビルドツール)の設定をリリース用に編集する。[project]/android/app/build.gradle
ファイルを以下の通り編集する。
android
ブロックの前にキーストアの情報を追加。
def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists()) {
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}
android {
...
}
そして buildTypes
ブロックを見つけて次のように変更。
// 変更前
buildTypes {
release {
// TODO: Add your own signing config for the release build.
// Signing with the debug keys for now, so `flutter run --release` works.
signingConfig signingConfigs.debug
}
}
// 変更後
signingConfigs {
release {
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null
storePassword keystoreProperties['storePassword']
}
}
buildTypes {
release {
signingConfig signingConfigs.release
}
}
2-2. flutter clean する #
Gradle のファイルを編集したら flutter clean
する。
Note: You may need to run
flutter clean
after changing the gradle file. This prevents cached builds from affecting the signing process.
2-3. 設定内容を最終確認する #
Review the default App Manifest file, AndroidManifest.xml, located in [project]/android/app/src/main and verify that the values are correct
Review the default Gradle build file, build.gradle, located in [project]/android/app and verify the values are correct
確認だけなので詳細は省略。主にどこを確認すべきなのか、Flutter のウェブサイトを見れば解説してくれている。
3. ビルドする #
Flutter プロジェクトのディレクトリで以下を実行するだけ。
flutter build appbundle
これで AAB(Android App Bundle)形式にビルドされ [project]/build/app/outputs/bundle/release/
に .aab
ファイルが作成されている。
4. Google Play Console のデベロッパーアカウントを作成する #
以下から Google Play のデベロッパーアカウントを作成する。アカウント作成には 25USD が必要となる。
- Google Play | Android Developers
- https://developer.android.com/distribute/console
5. Google Play Console からアプリを配布する #
Google Play Console にログインする。
- Google Play Console
- https://play.google.com/console/u/0/developers
5-1. Play Console でアプリを作成する #
「アプリを作成」からアプリを作成する。
5-2. 内部テストのテスターを選択する #
Play Console の「テスト > 内部テスト」から「テスター数」タブに移動する。
「メーリングリストの作成」にてテスターのメールアドレスを入力する。ここにリストされた人だけがアプリにアクセスできる。
5-3. リリースを作成する #
Play Console の「テスト > 内部テスト」の「新しいリリースを作成」を選択する。
先ほど作成した AAB をアップロードする。
5-4. 内部テスト状態として公開する #
そして「保存」、「リリースのレビュー」と遷移し、最後は「内部テストとしての公開を開始」を選択すると内部テスト状態になる。
5-5. アプリのリンクを取得する #
Play Console の「テスト > 内部テスト」から「テスター数」タブに移動する。
「テストへの参加方法」のところからリンクの URL がコピーできる。
5-6. スマートフォンからリンクにアクセスする #
スマートフォンのブラウザから URL にアクセスすると「内部テストに招待されました。」というページが表示される。
「招待に応じる」を選択した後は Google Play のダウンロードページへのリンクがあるのでそこからダウンロードする。
以上 #
おわり