Closed2
Flutter製のAndroidアプリをGooglePlayにリリースする
参考記事
FlutterでGooglePlayにリリースする方法まとめ
Flutter製のAndroidアプリをリリースする手順
1.ターミナルで以下のコマンドをたたく
keytool -genkey -v -keystore key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key
プロジェクトのターミナルで叩くと以下のエラーが出る→どこで叩けばいい?
'keytool' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
(https://enoiu.com/app-develop/flutter-release/)
この記事に解決方法があった
flutter doctor -v
を叩く→Android toolchain のJava binary at という部分に記述されているパスがjava及びkeytoolがある場所らしい
"C:\Program Files\Android\Android Studio\jre\bin\keytool" -genkey -v -keystore key.jks -storetype JKS -keyalg RSA -keysize 2048 -validity 10000 -alias key
これでkey.jksが生成された。プロジェクト配下のターミナルでコマンドを叩いたのでプロジェクトの配下にkeyが生成されている。
作成されたkye.jksファイルをandroid/app/の下に置く
android/app/build.gradleを編集する
// buildTypesの前に入れる
signingConfigs {
release {
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null
storePassword keystoreProperties['storePassword']
}
}
build.gradleに追加
アプリ名をつける
android/app/src/main/AndroidManifest.xmlでアプリ名をつける
<application
android:label="XXX"
<!--中略-->
>
XXXにアプリ名を入れる
ビルドする
flutter build apk --release
を叩く
エラーが発生
* What went wrong:
A problem occurred evaluating project ':app'.
> Could not get unknown property 'keystoreProperties' for SigningConfig_Decorated{name=release, storeFile=null, store
Password=null, keyAlias=null, keyPassword=null, storeType=jks, v1SigningEnabled=true, v2SigningEnabled=true, v1Signin
gConfigured=false, v2SigningConfigured=false} of type com.android.build.gradle.internal.dsl.SigningConfig.
key.propertiesを作っていなかったから?
androidの配下にkey.propertiesを作る
storePassword=YOUR_PASSWORD
keyPassword=YOUR_PASSWORD
keyAlias=key
storeFile=key.jks
↓build.gradleに追加
def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists()) {
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}
###再びビルドしてみる
flutter build apk --release
成功!
build\app\outputs\flutter-apk\app-release.apk
に生成されてるっぽい
ストアにリリースする
GooglePlayConseleで「アプリを作成」からリリース
AppBundleにアップロードしようとしたところでエラー
アップロードされた APK または Android App Bundle がデバッグモードで署名されています。APK または Android App Bundle はリリースモードで署名する必要があります。詳しくは、署名についての説明をご覧ください。
key.propertiesで
app//key.jksにしていた→key.jksに変更
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 //releaseではなくdebugになっていた
}
}
→成功!
リリースビルド
flutter build appbundle
このスクラップは2021/07/15にクローズされました