invertase / flutterfire_cli

A CLI to help with using FlutterFire in your Flutter applications.
Apache License 2.0
164 stars 47 forks source link

request: support multiple ios-build-config values #322

Open alestiago opened 2 days ago

alestiago commented 2 days ago

Is there an existing feature request for this?

Command

flutterfire configure

Description

Currently, if you have more than a single build configuration for your iOs project you are required to run the flutterfire configure command multiple times. From the documentation:

You need to run flutterfire configure for every configuration type. E.g. if you have Debug & Release configurations, you need to run flutterfire configure twice with the relevant arguments documented below.

If you are sharing the same configuration for different iOs build configurations. For example if the project has the following build configurations: Debug-dev, Profile-dev and Release-dev. Then, it would be very convenient to simply run once:

flutterfire configure --project my_project --ios-build-config Debug-dev,Profile-dev,Release-dev --ios-bundle-id com.example.project.dev --ios-out ios/Runner/development --platforms ios

Hence, I would expect the above command to create three identical entries in the firebase.json file, equivalent to when its run multiple times with different ios-build-configs:

{
  "flutter": {
    "platforms": {
      "ios": {
        "buildConfigurations": {
          "Debug-dev": {
            "projectId": "my_project",
            "appId": "1",
            "uploadDebugSymbols": false,
            "fileOutput": "ios/Runner/development/GoogleService-Info.plist"
          },
          "Profile-dev": {
            "projectId": "my_project",
            "appId": "1",
            "uploadDebugSymbols": false,
            "fileOutput": "ios/Runner/development/GoogleService-Info.plist"
          },
          "Release-dev": {
            "projectId": "my_project",
            "appId": "1",
            "uploadDebugSymbols": false,
            "fileOutput": "ios/Runner/development/GoogleService-Info.plist"
          },
        }
      }
    }
  }
}

Reasoning

It is easier to run the command once rather than running it multiple times and changing the --ios-build-config each time with the same configuration.

For example, consider projects that have 3 Schemas (production, release, development) each with 3 Build Configurations (Profile, Debug, Release), a user of the FlutterFire CLI would have to run the command 9 times! Each time modifying the --ios-build-config instead of simply running it 3 times (one per schema, each schema having its own Firebase project configuration).

Additional context and comments

No response