Open3

Flutterプロジェクト作成後、はじめにすること

manabiyamanabiya

まず、環境ごとのFlavorを作成する

公式ドキュメントが参考になるが、iOS設定部分のドキュメントに誤植が多いため、よりコンテキストに富んだ別の記事を参照した。

公式ドキュメントの内容で進める場合、iOSのアプリ名設定箇所は誤植があるため、以下を参考にすると良い。ただし、公式ドキュメントまたはそこで紹介されているもの以外に記載されている方法を取りたくなかったので採用せず。
https://stackoverflow.com/questions/75903439/using-flavors-with-flutter-on-ios-product-name-not-working-as-intended

詳細な設定手順は以下を参照。
https://docs.flutter.dev/deployment/flavors
https://medium.com/@animeshjain/build-flavors-in-flutter-android-and-ios-with-different-firebase-projects-per-flavor-27c5c5dac10b

なお、Flutter プラグインの利用がある場合にPodfileの変更も必要。
複数スキーマ、複数ビルド設定の場合どのように書くのかはっきりしないが、Podfileのドキュメントにはprojectにはビルド設定を記載する記述はあったが、スキーマについては言及されていないので、スキーマ問わずビルド設定を記述した。

project 'Runner', {
  'Debug-development' => :debug,
  'Profile-development' => :release,
  'Release-development' => :release,
  'Debug-production' => :debug,
  'Profile-production' => :release,
  'Release-production' => :release,
}

https://docs.flutter.dev/deployment/flavors#plugin-configurations

manabiyamanabiya

Android向けの設定

Flavor設定後のAndroid向けの設定を記載する。

アプリへの署名設定

Playストアで公開する場合必須となる。
手順は以下の通り。キー生成はコマンドで実行した。

https://docs.flutter.dev/deployment/android#sign-the-app

⚠️注意
公式の通りに以下の設定にしたところ、デバッグビルドの場合、AndroidStudioが利用する鍵による署名が行われるようなので、鍵のSHA-1などを登録するようなSaaSを利用する場合は注意のこと。
FirebaseのGoogle Sign-Inで躓いた。

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

    buildTypes {
        release {
           signingConfig = signingConfigs.release
        }
    }

アプリのマニフェストファイルを更新する

アプリが必要とする権限がある場合は追加する。
ネット接続などはほぼ必須のため追加すること。

https://docs.flutter.dev/deployment/android#review-the-app-manifest