Androidのbuild.gradleのproductFlavorsに大文字は使えない

1 min read読了の目安(約800字

タイトルの通りです。

Flutterで開発してる時に環境を分けてこんな感じのコマンドで起動するとします。

$ flutter run --debug --flavor Development --dart-define=FLAVOR=Development

これはiOSではDevelopmentのschemeを作りそれ用のDebug-Developmentなconfigurationを作成すれば問題なく動きます。

しかしAndroidではandroid/app/build.gradleproductFlavorsへこんな感じで設定をしていたとしても大文字のflavorを認識してくれません。

productFlavors {
  Development {
    dimension "environment"
    applicationIdSuffix ".dev"
    versionNameSuffix ".dev"
  }
}

正しくはこう書きます。

productFlavors {
  development {
    dimension "environment"
    applicationIdSuffix ".dev"
    versionNameSuffix ".dev"
  }
}

そして実行する時は--flavorに小文字を渡しましょう。

$ flutter run --debug --flavor development --dart-define=FLAVOR=Development

Firebaseのgoogle-services.jsonを環境ごとに分けようと作業していた時にどうしても動かなくてハマったのですがこいつが原因でした。

特にエラーも発生しないので気づけなかった...。