検証日時
2019年11月28日
全体的なリリースまでの流れと、本記事の概要
公式チュートリアルです。
https://flutter.dev/docs/deployment/android
英文がよくわからないという場合は、Chromeで日本語翻訳にかければほぼほぼ内容わかります。対応している単語がわからないときは翻訳を切って見比べると解決します。
このチュートリアルを進める時にエラーが出た部分にフォーカスして、その解決法(自分のケースでうまくいった操作)などを共有します。
iOS 版も公開中です。お役に立てば^^
https://qiita.com/k_mawa82/items/5b7fb10ff81c04ec3be9
ローカル動作確認した時のFlutter周り環境情報とパッケージの各バージョン
$ flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, v1.9.1+hotfix.6, on Mac OS X 10.14.6
[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
[✓] Xcode - develop for iOS and macOS (Xcode 11.2)
パッケージ
dependencies:
flutter:
sdk: flutter
rflutter_alert: ^1.0.2
flutter_launcher_icons: any
署名構成の部分でコピペ忘れでデバッグ版ビルドに署名していたのを解決
チュートリアル「Configure signing in gradle」の「With the signing configuration info:」の部分について
signingConfig signingConfigs.release
は初期設定だとdebug
になっててコピペ忘れてGoogle Play Consoleアップ時に「ビルドの署名がデバッグバージョンにされてます」という趣旨のエラー出してしまいました。
content_copy
signingConfigs {
release {
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile file(keystoreProperties['storeFile'])
storePassword keystoreProperties['storePassword']
}
}
buildTypes {
release {
signingConfig signingConfigs.release // ここを変更!
}
}
「Enabling Proguard」の「Step 2 - Enable obfuscation and/or minification」でのエラー
チュートリアルのそのままだとエラーでした。
the file you created in step 1:
android {
...
buildTypes {
release {
signingConfig signingConfigs.release
minifyEnabled true
useProguard true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
下記の参考記事に沿って変更しました。そしたらうまくいきました。
the file you created in step 1:
android {
...
buildTypes {
release {
signingConfig signingConfigs.release
minifyEnabled false // ここを変更!
useProguard true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
参考記事
https://qiita.com/chooyan_eng/items/022721c09ddfc758476e
$flutter build appbundle
でアプリバンドル作成(.aabファイル)、アップ
上記のポイントでエラー回避されていれば無事にリリースビルドが得られると思います。
Google App Console でのポイント
アプリの署名について。
3つ選択肢がありましたが、
自分は、Google Play アプリ署名を選びました。
(pepk.jarを使う暗号化も一度試しましたが、
なぜか下記のエラー報告のようにうまくいかなかったのですが、
https://stackoverflow.com/questions/52269806/error-running-pepk-app-signing-tool-at-command-line-java-jar-pepk-jar
上記Google Play アプリ署名を選択したら不要になったので結果オーライです。)
なお、証明書ダウンロードなど色々出てきますが、Flutterプロジェクトに新たに追加操作するなどの必要はないです。当初に行った鍵生成→署名つきリリースビルドで署名に関する操作は完了しています。
Consoleでチェックマークがある項目は全部埋めないとリリースできない。
「アプリの署名」や、「ストアの掲載情報」、「コンテンツのレーティング」などチェックマークが薄く灰色で示されている部分は入力必須項目なので埋めます。
下記が参考になりました。
https://www.cotegg.com/blog/?p=1807
コードアップからリリースまでかかった時間計測
テスト版app.bundleをアップしてから審査完了(問題なしストレート)で4日間
その後同じバンドルを製品版公開してから、1日後に審査完了でGooglePlay一般公開完了
という感じでした。
なおリリースしてすぐの現在GooglePlayでの検索には引っかからない状態です。ので、直リンクでTwitterやブログなどの広報記事から誘導する必要があるようです。
iOS 版も公開中です。お役に立てば^^
https://qiita.com/k_mawa82/items/5b7fb10ff81c04ec3be9