8
8

More than 3 years have passed since last update.

Flutterで作成したアプリをAndroid用でリリースビルドする手順を解説してみる

Last updated at Posted at 2020-08-08

本記事の内容

  • Flutterで作成したアプリをAndroid用でリリースビルドする手順を解説

前提

  • Flutterでアプリが作れていて、シミュレータで動作確認が済んでいること
  • GoogleDeveloper登録が済んでいること(リリースするときは結局必須なので・・・)

目次

keystoreファイル(署名するときの設定ファイル)を作成

①Macのターミナルで以下のコマンドを叩く。

alias に指定した文字はあとから使うので覚えておく(以下の場合、最後の「key」の部分)

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

②以下の入力を済ませる。

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

10,000日間有効な2,048ビットのRSAの鍵ペアと自己署名型証明書(SHA256withRSA)を生成しています
    ディレクトリ名: CN=namae myouji, OU=app team, O=arg myouji, L=kabukityo, ST=tokyo, C=JP
<test>の鍵パスワードを入力してください
    (キーストアのパスワードと同じ場合はRETURNを押してください): `RETURN押せばいい`
[key.jksを格納中]

③作成されたkey.jksファイルを「android\app\」配下に格納する。

android/app/build.gradleを編集

以下の点に注意しながら、編集する

  • defaultConfig部分(コメント見てほしい)
  • buildTypesを signingConfig signingConfigs.release にする ← 重要!
  • 「ここから追加」と書いてある部分を追加する
項目 書くべきこと
storePassword ここで設定したStoreパスワード
keyAlias ここで設定したエイリアス名
keyPassword ここで設定したキーパスワード(Storeパスワードと大抵同じ)
android/app/build.gradle
def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists()) {
    localPropertiesFile.withReader('UTF-8') { reader ->
        localProperties.load(reader)
    }
}

def flutterRoot = localProperties.getProperty('flutter.sdk')
if (flutterRoot == null) {
    throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
}

def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) {
    flutterVersionCode = '1'
}

def flutterVersionName = localProperties.getProperty('flutter.versionName')
if (flutterVersionName == null) {
    flutterVersionName = '1.0'
}

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"

android {
    compileSdkVersion 28

    sourceSets {
        main.java.srcDirs += 'src/main/kotlin'
    }

    lintOptions {
        disable 'InvalidPackage'
    }

    defaultConfig {
        // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
        applicationId "XXX.YYY.ZZZ" // App Bundle のパッケージ名(アプリごとに変更)
        minSdkVersion 16
        targetSdkVersion 29 // 記事執筆時点で、29以上にしておかなくてはいけなかった
        versionCode 1  // アプリを更新するたびに数値を上げる必要がある
        versionName "1.0.0" // アプリのバージョン
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }

    // ここから追加
    signingConfigs {
        release {
            storeFile file("key.jks")
            storePassword "password"
            keyAlias "alias-name"
            keyPassword "password"
        }
    }
    // ここまで追加


    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  // ←コレ大事!
        }
    }
}

flutter {
    source '../..'
}

dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
}

AndroidManifest.xmlを編集

packageが指定されていることを確認する。(おそらく最初からなっている)

android\app\src\main\AndroidManifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="xxx.yyy.zzz"> 

ターミナルでコマンドを叩く

以下のコマンドをAndroidStudioのターミナルで叩く(Macのターミナルでもいいけど、カレントディレクトリをちゃんとする)

「build\app\outputs\apk\release\ 」に「app-release.apk」ができる

flutter build apk --release 

Android App Bundle でリリースしたい場合は以下のコマンド

「build\app\outputs\bundle\release\ 」に「app-release.aab」ができる

flutter build appbundle --release 

参考

その他

不備がありましたら、コメント願います。

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