コマンドでaabファイルを作成する
公開日: 2024-06-23 11:15:59
更新日: 2024-08-04 21:52:05
Androidアプリを公開する手順がものすごく大変になっていました。
こちらは2023/11/13以降に作成されたアカウントに対しては、クローズドテストを行った後にしか、アプリ申請ができないというもので、このクローズドテストというものがかなり厄介なものとなっておりました。
・20人以上のテストユーザーが必要
・テストユーザーは連続14日以上連続で使用して、毎日フィードバックを送る
20人までならなんとかなるのですが、14日の連続フィードバックというものはものすごく大変です。こちらは途中で1日でも欠かすと連続ではなくなるため、20人ギリギリの人数を実施した場合、1人でも脱落するとテスト実施の達成人数が19/20となり、この1人分の枠が1/14日からスタートとなるため、一人欠かすたびに2週間伸びるということになるようです。
こちらのテストは、実際にフィードバックを送信する必要はなくアプリでタブを切り替えたり、特定のViewを開いたりするだけで操作したとみなされるようです。
Androidのaabファイルを作成した手順を載せておきます。
下記のコードで発行できるですが、必要な項目というものがありました。
このコマンドは、プロジェクトのルートディレクトリ(つまり、pubspec.yaml ファイルが存在する場所)で実行する必要があります。このコマンドを実行することで、Android App Bundle(AAB)ファイルが生成され、Google Playストアにアップロードするための準備が整います。
前回に作成したKeyパスワードを入力しようとしたら、すでに使われています。
というメッセージが表示されました。
調べてみると、Keyを変更する必要がない場合は
「flutter build appbundle --release」を実行するとAABファイルが生成されるのでこちらをUploadするだけでOK。
20240804(日)追記
// aabファイルを作成する
flutter build appbundle --release
1.キー項目を作成する
// キー項目の作成
keytool -genkey -v -keystore release-key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias release-key
登録内容(サンプル)
// こちらのメッセージを聞かれるので登録していきます。
Enter keystore password: test1234
Re-enter new password: test1234
What is your first and last name?
[Unknown]: 山田 太郎
What is the name of your organizational unit?
[Unknown]: 個人開発
What is the name of your organization?
[Unknown]: 自営業
What is the name of your City or Locality?
[Unknown]: 東京
What is the name of your State or Province?
[Unknown]: 東京
What is the two-letter country code for this unit?
[Unknown]: JP
Is CN=山田 太郎, OU=個人開発, O=自営業, L=東京, ST=東京, C=JP correct?
[no]: yes
Enter key password for <release-key>
(RETURN if same as keystore password): test1234
2.プロジェクトのルートディレクトリに key.properties ファイルを作成し、以下の内容を記載します:
(こちらはpubspec.yamlと同じ階層に配置すればOK)
storePassword=あなたのキーストアのパスワード(test1234)
keyPassword=あなたのキーのパスワード(test1234)
keyAlias=release-key
storeFile=/Users/yourPCName/FlutterProjects/GufufuProject/release-key.jks3.build.gradle ファイルの設定
android/app/build.gradle ファイルに以下の署名設定を追加します:
def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file("key.properties")
if (keystorePropertiesFile.exists()) {
keystorePropertiesFile.withReader("UTF-8") { reader ->
keystoreProperties.load(reader)
}
}
android {
...
signingConfigs {
release {
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile file(keystoreProperties['storeFile'])
storePassword keystoreProperties['storePassword']
}
}
buildTypes {
release {
signingConfig signingConfigs.release
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
こちらの設定が終われば、こちらを入力すればコマンドに記載されている場所にaabファイルが発行されます。
ProjectFile/build/app/outputs/bundle/release/app-release.aab
// aabファイルを作成する
flutter build appbundle --release
作成される場所 <プロジェクトルート>/build/app/outputs/bundle/release/app-release.aab
こちらを上げることで簡単にaabファイルは作成できたのですが、GooglePlayConsoleにアップロードするたびにpubspec.yamlに記載したverを1ずつ追加する必要があったのが地味にめんどくさかったです。
前回のVer
version: 2.0.0+5
今回のVer
version: 2.1.0+6
前回と今回のバージョンが違っていてもGooglePlayConsoleのAABファイルの判定は+5の部分で行なっており、こちらを1ずつ追加していく必要があります。
20240804(日)追記