[Flutter] Androidアプリのリリース準備(ビルド方法)

  • 2024年8月20日
  • Flutter
  • 35View
  • 0件

Flutterで作成したアプリをAndroid用にリリースビルドしたので、
その方法をまとめました。

kye.jksを作成

1. ターミナルで次のコマンドを実行する

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

質問が複数されますが、パスワードと国コードだけ入力すれば問題なさそうです。
パスワードは任意、国コードは「JP」でOK。

% keytool -genkey -v -keystore ./key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key
キーストアのパスワードを入力してください:  
新規パスワードを再入力してください: 
姓名は何ですか。
  [Unknown]:  
組織単位名は何ですか。
  [Unknown]:  
組織名は何ですか。
  [Unknown]:  
都市名または地域名は何ですか。
  [Unknown]:  
都道府県名または州名は何ですか。
  [Unknown]:  
この単位に該当する2文字の国コードは何ですか。
  [Unknown]:  JP
CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=JPでよろしいですか。
  [いいえ]:  はい            

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

2. 作成されたkye.jksファイルをandroid/app/の下に配置する

フォルダ名を修正

次のフォルダ名をドメイン名に合わせて修正する
android/app/src/main/kotlin/com/example

ファイルを作成

androidの配下に key.properties という名前でファイルを新しく作成し次の内容を入力する

storePassword={任意のパスワード}
keyPassword={任意のパスワード}
keyAlias=key
storeFile=key.jks

各ファイルを修正

android > app > build.gradle

次のコードを android {} の直前に追記する

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

次のコードを buildTypes {} の直前に追記する

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
    }
}

namespace を修正する

android {
    namespace "com.example.{アプリ名}"

applicationId を修正する

defaultConfig {
    applicationId "com.example.{アプリ名}"

android > app > google-services.json

package_name を修正する

"package_name": "com.example.{アプリ名}"

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.xxx.{アプリ名}">

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.xxx.{アプリ名}">

android:label を修正する

android:label="アプリ名"

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.xxx.{アプリ名}">

android > app > src > release > AndroidManifest.xml

android:label="アプリ名"

android > app > src > main > kotlin > com > {修正したドメイン名} > {アプリ名} > MainActivity.kt

package を修正する

package com.example.{アプリ名}

ビルド

1. ターミナルで次のコマンドを実行しクリーンする

flutter clean

2. ターミナルで次のコマンドを実行しビルドする

flutter build appbundle --release