今回はFlutter製AndroidアプリをPlayストアにリリースするまでの手順を解説していきます。
リリースするには大きく3つのステップが必要になります。
- アプリを開発する
- リリースビルドをする
- Playストアにアプリをリリースする
この記事にたどり着いたという事はアプリは既に開発済みかと思うので、今回は②と③の箇所を解説していきます。
目次
環境
今回作ったアプリのflutter doctorはこんな感じです。
$ flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 2.2.2, on Mac OS X 10.15.4 19E2269 darwin-x64, locale ja-JP)
[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
[✓] Xcode - develop for iOS and macOS
[✓] Chrome - develop for the web
[✓] Android Studio (version 4.1)
[✓] IntelliJ IDEA Ultimate Edition (version 2020.2.2)
[✓] VS Code (version 1.62.3)
[✓] Connected device (2 available)
• No issues found!
リリースビルドをする
keystoreファイルを作成する
Androidアプリをリリースビルドする際にはアプリを署名するためのkeystoreファイルと呼ばれるものが必要です。
keystoreファイルはコマンド一つ叩くだけで簡単に作成できます。
$ keytool -genkey -v -keystore ./key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key
キーストアのパスワードを入力してください:
新規パスワードを再入力してください:
姓名は何ですか。
[Unknown]:
組織単位名は何ですか。
[Unknown]:
組織名は何ですか。
[Unknown]:
都市名または地域名は何ですか。
[Unknown]:
都道府県名または州名は何ですか。
[Unknown]:
この単位に該当する2文字の国コードは何ですか。
[Unknown]: JP
CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=81でよろしいですか。
[いいえ]: はい
10,000日間有効な2,048ビットのRSAのキー・ペアと自己署名型証明書(SHA256withRSA)を生成しています
ディレクトリ名: CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=JP
[./key.jksを格納中]
質問をいくつか聞かれますがが、こだわりが無ければパスワード以外には特に入力しなくても問題ないです。
入力したい方は適宜入力していきましょう。
今回はパスワードと国コードだけ入力しておきました。
ここで入力したパスワードは次の工程で必要になるので忘れないようにしてください。
作成されたkeystoreファイルはandroid/appの下に置いておきます。
key.propertiesをつくる
次にkey.propertiesという設定ファイルをandroidディレクトリ配下に作成します。
▼android/key.properties
storePassword=<パスワード>
keyPassword=<パスワード>
keyAlias=key
storeFile=key.jks
storePasswordとkeyPasswordには先程作ったkeystoreで入力したパスワードを記載してください。
build.gradleを編集する
次にandroid/app配下のbuild.gradleを3箇所編集していきます。
▼android/app/build.gradle
// buildTypesの前とかに追記
signingConfigs {
release {
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null
storePassword keystoreProperties['storePassword']
}
}
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.release //←debugをreleaseに変える!
}
}
// 追記
def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists()) {
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}
AndroidManifest.xmlでアプリ名をつける
android:labelにアプリ名を記載しましょう。
▼android/app/src/main/AndroidManifest.xml
<application
android:label="アプリ名"
<!--中略-->
>
com.exampleを変更する
バンドルIDに「com.example」を使っている方は変更しないとリリースできないので、他のIDに変更しておきます。
プロジェクト内で「com.example」をgrepして一括置換するとスムーズです。
flutter cleanする
最後にflutter cleanコマンドを実行してキャッシュされたビルドが署名プロセスに影響を与えることを防ぎます。
$ flutter clean
リリースビルドする
ようやくリリースビルドを行っていきます。
昔はリリースビルドの形式で「apk」か「aab」のどちらかを選ぶ形でしたが、今は「aab」でのビルドが推奨になっているのでそちらで行っていきます。
$ flutter build appbundle
Running "flutter pub get" in app_name... 610ms
💪 Building with sound null safety 💪
Removed unused resources: Binary resource data reduced from 67KB to 52KB: Removed 21%
Running Gradle task 'bundleRelease'...
Running Gradle task 'bundleRelease'... Done 47.6s
✓ Built build/app/outputs/bundle/release/app-release.aab (16.6MB).
これで署名付きのAndroidアプリがビルド完了です!
このビルドしたアプリは後ほどGoogle Play Consoleに追加していくので消さないようにしてください。
Playストアにアプリをリリースする
Google Play Consoleに登録する
まずはGoogle Play Consoleに開発者として登録する必要がありますので下記のリンクから登録しましょう。
https://play.google.com/apps/publish/signup/
その際に25$ほどの手数料がかかります。
(Apple Developerと違って一度払えば後は追加料金は発生しませんし、比較的安価なので良心的ですね。)
アプリを作成する
「全てのアプリ」>「アプリの追加」

「アプリの詳細」を入力していきます。

これでアプリの作成は完了です。
アプリのセットアップをする
次にダッシュボードに表示される「アプリのセットアップ」の項目をひたすら埋めて行きます。
表示されている項目を上から順に記入していけば特に詰まる箇所無く進められると思います。

ちなみに「データセーフティ」の項目で既にインターネットに上がっているプライバシーポリシーの提示が求められます。
まだ作成できていない方は「GitHub Pagesでアプリのリリースに必要なプライバシーポリシーを簡単作成する」で簡単な作成方法を解説しているので良ければ参考にしてください。

アプリをアップロードする
次にアプリをPlayコンソールにアップロードしていきます。
左サイドバーの「製品版」>「新しいリリースを作成」を押します。

そうしたら遷移先画面の「App Bundle」の「アップロード」をクリックして先程リリースビルドしたアプリをアップロードしましょう。
リリースビルドしたアプリのパスは「プロジェクト名/build/app/outputs/bundle/release」で、拡張子が「.aab」のファイルです。

リリースノートを記載する
アップロードしたらリリースノートを記載します。
リリース名はアプリをアップロードした時に自動入力されます。
リリースノートにはそのリリースでのアップデート内容等を記載する箇所です。
初めてのリリースであれば「アプリをリリースしました」くらいでも問題ないと思います。

最後に画面右下の「リリースのレビュー」>「製品版として公開を開始」と押せばアプリの審査が開始されます。
お疲れさまでした
ここまででPlayストアにリリースするまでの手順は全て完了になります。
審査の期間としてはシンプルなアプリであれば1日、それなりのアプリであれば4,5日くらいの体感です。
アプリをリリースする機会はそう頻繁にあるわけでは無いと思うのでやり方を忘れたらまたこの記事を読み直してみてください。
抜けている箇所や質問等があれば指摘お待ちしております。
よきFlutterライフをー