yumehachi
【Flutter】android releaseビルド作成時のメモ

【Flutter】android releaseビルド作成時のメモ

yumehachi

keystore 作成

keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key

<app dir>/android/key.properties を作成

storePassword=<password from previous step>
keyPassword=<password from previous step>
keyAlias=key
storeFile=<location of the key store file, e.g. /Users/<user name>/key.jks>

<app dir>/android/app/build.gradle

android {

を見つけて下記に置換する

def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists()) {
   keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}

android {

同じく <app dir>/android/app/build.gradle を開き

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 file(keystoreProperties['storeFile'])
       storePassword keystoreProperties['storePassword']
   }
}
buildTypes {
   release {
       signingConfig signingConfigs.release
   }
}

でいけました。

Proguardも使いたいため、 <app dir>/android/app/proguard-rules.proを作成します。

#Flutter  Wrapper
-keep class io.flutter.app.** { *; }
-keep class io.flutter.plugin.**  { *; }
-keep class io.flutter.util.**  { *; }
-keep class io.flutter.view.**  { *; }
-keep class io.flutter.**  { *; }
-keep class io.flutter.plugins.**  { *; }

<app dir>//android/app/build.gradle の設定も変えれば完了

buildTypes {
       release {
           signingConfig signingConfigs.release
           minifyEnabled true
           useProguard true
           proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
       }
   }

appbundleが欲しいため下記コマンドでビルドすれば完了。

flutter build appbundle --release --target-platform=android-arm64


この記事が気に入ったら、サポートをしてみませんか?
気軽にクリエイターの支援と、記事のオススメができます!
yumehachi
フリーランスのエンジニアです。 メインはUnityを使ったゲーム開発が得意です。 最近はFlutterに興味があります。