FlutterのアプリをGoogle Playに申請する
毎回失敗するので
全体の手順を考え直すことにした。
まず、GooglePlayConsoleでの「書類作成」を先にやってしまう
掲載用の画像をつくるとき、ちょっとデザイン変えたくなったりする性格なので
Buildは後回しにする。
Iconや画像をつくるとき、
いろんな記事を読んで、あっちこっちで画像編集サイトをさまよった挙げ句、
たいがいのことはMacのPreviewの編集でどうにかなる、と気づいた。
今時な「最初の2画面が斜めに交錯してる系」は、何回かやったけど飽きたので、
今回はemulatorのスクショをPreviewで編集しただけ。
サイズ指定も、背景除去もできるからね。
フィーチャーグラフィックだけ、Canvaで作った。
Build準備
- まずKeystore、terminalで
keytool -genkey -v -keystore ./key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key
できたfileをandroid/appにひっぱっていく。
なんで最初からここにできてくれないんだ、と思うが、Flutterだからかな。
kotlinなら要らない手間なのかもしれない。
- key.propertiesをandroid直下に
storePassword=パスワード
keyPassword=パスワード
keyAlias=key
storeFile=key.jks
- つくったkey.propertiesをapp/build.gradleから参照する
なんか、build.gradleの構成が変わったみたいで、少しすっきりした気がする。
前回私を悩ませたlocal.propertiesの記述もないし。
plugins {
id "com.android.application"
id "kotlin-android"
// The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins.
id "dev.flutter.flutter-gradle-plugin"
}
//ここを追加
def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists()) {
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}
android {
namespace = "com.laporte.academy.chronomap_in_cosmos_a"
compileSdk = flutter.compileSdkVersion
ndkVersion = flutter.ndkVersion
compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = JavaVersion.VERSION_1_8
}
defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId = "com.laporte.academy.chronomap_in_cosmos_a"
// You can update the following values to match your application needs.
// For more information, see: https://flutter.dev/to/review-gradle-config.
minSdk = flutter.minSdkVersion
targetSdk = flutter.targetSdkVersion
versionCode = flutter.versionCode
versionName = flutter.versionName
}
//ここも追加
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 <=ここを変更
}
}
}
flutter {
source = "../.."
}
あと、プロジェクト作ったときにcom.exampleのまま放置していた場合は、
app/build.gradleの該当部分を修正する必要もある。
実はここで、newPropertiesのところが赤くなって、右上に赤丸びっくりマークも出る。
そこをナントカしようと悪戦苦闘すると、次々大変なことになって墓穴を掘る。
どういうわけか、これは無視して大丈夫。(らしい)
- android/app/src/mainのAndroidManifest.xmlで表示名を確認
プロジェクト名じゃなく、実際のアプリにくっついてくる名前なので。
で、実はこのファイルにも、赤丸びっくりマークが出ているかもしれないが、
ナントカしようとすると沼る。
ここも無視して大丈夫。(らしい)
なんでか聞かないで。
さあBuild
terminalで
flutter build appbundle
緑色で
Built build/app/outputs/bundle/release/app-release.aab
と表示されたら、成功。
build/app/outputs/bundle/release/
のフォルダに app-release.aab
ができてる。
Google Play Consoleに帰る
リリースを作成して公開する、のSectionで、
- 国や地域を選択。
- 新しいリリースを作成する。
このとき、認証が必要なので、「Googleで認証を作成」してから
さっきつくったaabファイルをdrag&dropして、提出!
Discussion