🔥

【flutter_flavorizr】爆速でFlavorの設定を行う方法

2022/04/30に公開

はじめに

最近は、下記のURLで解説されているFlavor対応を行っております。
特に理由がない場合は、松村さんが解説されている記事をもとに、Flavorの設定を行ったほうが良いと思います。
flutter_flavorizrを使用したい場合、私のこの記事は参考になると思います。
https://zenn.dev/riscait/articles/separating-environments-in-flutter

プロジェクトの作成

  1. ターミナルを開き、Flutterのプロジェクトをまとめているフォルダに移動する
    ※私の場合は、「development」フォルダにFlutterのプロジェクトをまとめています
$ cd development
  1. 以下のコマンドより、Flutterのプロジェクトを作成します
    ※組織名が「jp.co.mukku」で、アプリ名が「my_app」になります
$ flutter create my_app --org jp.co.mukku

セットアップ

今回は、Flavorの設定を行うために、flutter_flavorizrを使用します
https://pub.dev/packages/flutter_flavorizr

  1. flutter_flavorizrを使用するためには、下記の3つをインストールしている必要があります。
    Ruby
    Gem
    Xcodeproj(through RubyGems)

  2. pubspec.yamlのdev_dependenciesに以下を記述する。そして、flutter pub getする。

dev_dependencies:
  flutter_flavorizr: ^2.0.0
  1. pupspec.yamlにFlavorの設定を記述する
    ※今回は、dev・stg・prodの3つのFlavor環境を準備しています。
flavorizr:
  app:
    android:
      flavorDimensions: "flavor-type"
    ios:

  flavors:
    dev:
      app:
        name: "dev app name"

      android:
        applicationId: "jp.co.mukku.my_app.dev"

      ios:
        bundleId: "jp.co.mukku.my_app.dev"

    stg:
      app:
        name: "stg app name"

      android:
        applicationId: "jp.co.mukku.my_app.stg"
      ios:
        bundleId: "jp.co.mukku.my_app.stg"

    prod:
      app:
        name: "prod app name"

      android:
        applicationId: "jp.co.mukku.my_app.prod"
      ios:
        bundleId: "jp.co.mukku.my_app.prod"
  1. 下記のコマンドを実行
flutter pub run flutter_flavorizr

コマンドの実行が完了すると、Flavor環境ごとのmain_(flavor).dartが生成されています。
ビルドモードとFlavor環境をそれぞれ指定した上でflutter runすることで、さまざまな環境でビルドを実行できます。

例えば、以下のように実行できます。

// ビルドモード: debug、 Flavor環境: devで実行
flutter run --debug --flavor dev --dart-define=Flavor=dev -t lib/main_dev.dart

VSCodeのlaunch.jsonの設定

今回は、debug-dev・debug-stg・debug-prod環境の設定を行いました。

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "debug-dev",
            "request": "launch",
            "type": "dart",
            "program": "lib/main_dev.dart",
            "args": [
                "--debug",
                "--flavor",
                "dev",
                "--dart-define=FLAVOR=dev",
            ],
        },
        {
            "name": "debug-stg",
            "request": "launch",
            "type": "dart",
            "program": "lib/main_stg.dart",
            "args": [
                "--debug",
                "--flavor",
                "stg",
                "--dart-define=FLAVOR=stg",
            ],
        },
        {
            "name": "debug-prod",
            "request": "launch",
            "type": "dart",
            "program": "lib/main_prod.dart",
            "args": [
                "--debug",
                "--flavor",
                "prod",
                "--dart-define=FLAVOR=prod",
            ],
        },
    ]
}

これによって、3つのFlavor環境での実行を行うことができます。
緑の三角を押下することで、アプリを実行できます。

Discussion