1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Flutter】Androidアプリリリース手順(ビルド方法)

Last updated at Posted at 2025-01-06

はじめに

この記事ではFlutterで作成したアプリをGoogle Play Storeに公開するため、AABファイルの作成方法をまとめました。
GoogleはGoogle play Storeにアプリを提出する際にAAB(Android App Bundle)形式を推奨しているため、今回はAABファイルを作成しています。
多くの記事では、AndroidStudioのメニューバーのBuild > Generate Signed BundleからAABファイルを作成していましたが、バージョンの関係かAndroid Studio Koala 2024.1.1 Patch 1 ではGenerate Signed Bundleという項目がなかったため、コマンドを入力して作成しました。

keystoreファイル(証明書)を作成する

下記のコマンドの{}のところを編集してプロジェクトのディレクトリで実行してください。
アプリの署名に使う証明書を作成します。
指定した出力先パスにkeystoreファイルが作成されます。

書き方.
keytool -genkey -v -keystore {}\my_release_key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias {Alias名}
例.
keytool -genkey -v -keystore C:Users\your_username\development\my_release_key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key

説明
・keytool:証明書を作成する。
・-genkey:キーとペアを生成する
・-v:詳細を出力する
・-keyalg RSA:キーをRSA方式で暗号化する
・-keysize 2048:キーを2048ビットのファイルサイズで生成する
・validity 10000:証明書の有効日数を10000日にする
・-alias:証明書のエイリアスを任意の名前にする

出力結果.
キーストアのパスワードを入力してください:{パスワードを入力}
新規パスワードを再入力してください:{パスワードを入力}
姓名は何ですか。
  [Unknown]:  {姓名を入力}
組織単位名は何ですか。
  [Unknown]:  {組織単位を入力}
組織名は何ですか。
  [Unknown]:  {組織名を入力}
都市名または地域名は何ですか。
  [Unknown]:  {都市名または地域名を入力}
都道府県名または州名は何ですか。
  [Unknown]:  {都道府県名を入力}
この単位に該当する2文字の国コードは何ですか。
  [Unknown]:  JP
CN=xxx, OU=xxx, O=xxx, L=xxx, ST=xxx, C=JPでよろしいですか。
  [いいえ]:  y

10,000日間有効な2,048ビットのRSAのキー・ペアと自己署名型証明書(SHA256withRSA)を生成しています
        ディレクトリ名: CN=xxx, OU=xxx, O=xxx, L=xxx, ST=xxx, C=JP
[C:Users\your_username\development\my_release_key.jksを格納中]

key.properties ファイルを作成する

下記のプロパティファイルを作成し、androidフォルダの直下に配置します。

android\key.properties
storePassword={パスワード}
keyPassword={パスワード}
keyAlias=key
storeFile={key.jksの絶対パス}

注意
key.jksの絶対パスはWindowsの場合、\ を2つ書く必要があります。

app/build.gradle に署名設定を追加する

key.jksとプロパティファイルがビルド時に組み込まれるようにします。
android/app/build.gradleに情報を追記します。

//keystoreProperties をロードする
+def keystoreProperties = new Properties()
+def keystorePropertiesFile = rootProject.file('key.properties')
+if (keystorePropertiesFile.exists()) {
+    keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
+}

/* 中略 */

android {
    /* 中略 */
+   signingConfigs {
+       release {
+           keyAlias keystoreProperties['keyAlias']
+           keyPassword keystoreProperties['keyPassword']
+           storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null
+           storePassword keystoreProperties['storePassword']
+       }
+   }
   buildTypes {
       release {
-          signingConfig signingConfigs.debug
+          signingConfig signingConfigs.release    
       }
   }
/* 中略 */
}

AndroidManifest.xmlファイルを編集する

android/app/src/main/AndroidManifest.xmlの{]を修正し、アプリ名を設定します。

    <application
-        android:label="{デフォルトのプロジェクト名}"
+        android:label="{アプリ名}"

ドメインを変更する

下記の関連する箇所の初期設定されているexampleドメインを独自パッケージ名やフォルダ構成に修正します。
例)com.example.アプリ名 → com.{自分のドメイン}.アプリ名

・android/app/src/main/AndroidManifest.xml : package

-<manifest xmlns:android="http://schemas.android.com/apk/res/android">
+<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.{自分のドメイン}.アプリ名">

・android/app/src/debug/AndroidManifest.xml : package

-<manifest xmlns:android="http://schemas.android.com/apk/res/android">
+<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.{自分のドメイン}.アプリ名">

・android/app/src/profile/AndroidManifest.xml : package

-<manifest xmlns:android="http://schemas.android.com/apk/res/android">
+<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.{自分のドメイン}.アプリ名">

・android/app/build.gradle : defaultConfig の applicationId

-applicationId = "com.example.アプリ名"
+applicationId = "com.{自分のドメイン}.アプリ名"

・android/app/google-services.json : package_name

-"package_name": "com.example.アプリ名"
+"package_name": "com.{自分のドメイン}.アプリ名"

ビルドする

作ったアプリをリリース用にビルドをします。
下記のコマンドをプロジェクトのディレクトリで実行してください。

flutter build appbundle --release

出力先はbuild/app/outputs/bundle/release/app-release.aabとなります。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?