4
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?

More than 1 year has passed since last update.

Flutterでアプリをリリースする

Posted at

はじめに

備忘録として、アプリをリリースする作業手順を記事にします。
AppleDeveloperProgramに登録してという段階からではなく、

共通手順

最初に共通手順として、以下を行いましょう。
失敗しないためのチェック項目です。

  • 対象のプロジェクトを開き、ターミナルでgit status
    branchがビルド対象か確かめましょう
  • .envなど環境設定ファイルがあれば見直し
    リリース用の環境に合わせて設定ファイルを見直します
  • pubspec.yamlのバージョンをリリースするバージョンに更新

iOS

コードをビルドする

対象のプロジェクトのコードをビルドしましょう。

flutter build ios

もしdart-definesを使って環境を切り替えている場合は、引数の指定もリリース用の引数か確認しましょう。

Archiveする

iosフォルダにあるRunner.xcodeprojをXcodeで開きます。
VSCodeの場合はiosフォルダを右クリック、Open in xcodeで開けます。
開いたら、上の対象機器をAny iOS Device (arm64)に変更します。

image.png

XCode14.3だとエラーになることがありますがその場合は下記で解決できました。

Archive後は下記の画面が表示されるので、ビルドしたバージョンのArchiveをDistribute Appします。

image.png

そのあといくつかダイアログが現れますが特に何も変更せずにそのまま次へで進んでいきます。

すると、アップロード画面が現れるのでアップロードし、完了するまで待ちます。
完了すると、AppStoreConnectの方から見れるようになります。

TestFlight

前項でアップロードしたアプリはTestFlightで確認できるので最終動作確認しましょう。
アップロード後すぐには利用できないので、10分くらい待つと「輸出管理の変更」ができるようになります

輸出管理は特にアルゴリズムを使ってなかったら使ってないでOKです

リリース

AppStore Connectのアプリのページに行くと、左側

Android

手順としては以下になります

  • ビルドに署名するためのkeystoreファイルを作成
  • ビルドするためにプロジェクト設定
  • ビルド
  • GooglePlayStoreでアップロード
  • 審査して、リリース

keystoreファイルの作成

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

ファイルを作りたいディレクトリで、上記のコマンドを実行してください。
実行するとパスワードを入力してくださいと言われますので、任意のパスワードを入力してください。
(他の工程でも使うので、パスワードは覚えておいてください)
入力すると、もう一度パスワードを求められますので同じのを入力してください
あとは順番に情報を入力していきます。

必要な情報をまとめると下記になります。

  • パスワード
  • 姓名
  • 組織単位名
  • 組織名
  • 都市名または地域名
  • 都道府県名または州名
  • 国コード

最後に以下を聞かれますが、そのままでいいと思いますのでEnterを押してください

<key>のキー・パスワードを入力してください
	(キーストアのパスワードと同じ場合はRETURNを押してください):  
[./key.jksを格納中]

また下記のワーニングが表示されることがありますが、よく調べてないです。
一旦、無視しました。

Warning:
JKSキーストアは独自の形式を使用しています。"keytool
 -importkeystore -srckeystore ./key.jks -destkeystore ./key.jks -deststoretype pkcs12"を使用する業界標準の形式であるPKCS12に移行することをお薦めします。

プロジェクトの設定をする

リリースビルド用にプロジェクトを設定します。

keystoreファイルを配置する

先ほど作成したkeystoreファイルをビルドするプロジェクトのandroid/app下におきます。

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

android下に、key.propertiesというファイルを作成します。
ビルドする際にkeystoreファイルを使うための設定情報のようなものだと思います。

storePassword=keystoreファイル作成時のパスワード
keyPassword=keystoreファイル作成時のパスワード
keyAlias=key
storeFile=./key.jks

build.gradleの編集

リリースビルド用に編集します

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 keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists()) {
    keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}

// ーーーーーー省略ーーーー

defaultConfig {
// ・・・・      
}

// 追加
signingConfigs {
    release {
        keyAlias keystoreProperties['keyAlias']
        keyPassword keystoreProperties['keyPassword']
        storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null
        storePassword keystoreProperties['storePassword']
    }
}

// 編集
buildTypes {
    release {
        // TODO: Add your own signing config for the release build.
        // Signing with the debug keys for now, so `flutter run --release` works.
        // ※debugからreleaseに変える
        signingConfig signingConfigs.release
    }
}

パッケージ名変更

android/app/src/main/AndroidManifest.xmlを確認し、パッケージ名がデフォルトのcom.exampleを使っているなら変更しましょう。
以下の部分です。

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="xxx.xxxxxx">

パッケージ名の変更方法はこちらの記事がわかりやすかったです。

パッケージ名が最初に決まっているなら、作成の段階で指定すると楽です。

flutter create --org com.hoge --project-name

参考記事

ビルドする

いよいよビルドしますが、その前に、もう一度、ブランチと環境設定ファイルの確認をしましょう。
問題なければ次のコマンドを実行してください。

flutter clean
flutter build appbundle

(dart-defineで環境を切り替えている場合は、引数の指定もリリース用になっているか確認してください。flutter build appbundle --dart-define-from-file=dart_defines/xxxx.json)

4
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
4
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?