Flutter Flavours(口味)

开发环境

一个使用 Flutter flavorizr 创建多个口味(环境)的演示。在此示例中,我创建了四个环境:质量保证(Qa)、开发(Dev)、预发布(Hom)和生产(Prod)。

配置步骤

  1. 在 `dev_enviroment` 中添加 `flutter_flavorizr: ^2.0.0` 包。
  2. 在 `pubspec.yaml` 中添加环境设置。我的情况是:

flavorizr:
  app:
    android:
      flavorDimensions:  "flavor-type"
    ios: null
  flavors:
    dev:
      app:
        name: "Flutter Flavor Dev"

      android:
        #bundle identifier
        applicationId: "br.com.flutter.flavor.dev"

      ios:
        bundleId: "br.com.flutter.flavor.dev"
    hom:
      app:
        name: "Flutter Flavor Hom"

      android:
        applicationId: "br.com.flutter.flavor.hom"

      ios:
        bundleId: "br.com.flutter.flavor.hom"
    qa:
      app:
        name: "Flutter Flavor qa"

      android:
        applicationId: "br.com.flutter.flavor.qa"

      ios:
        bundleId: "br.com.flutter.flavor.hom"
    prod:
      app:
        name: "Flutter Flavor"

      android:
        applicationId: "br.com.flutter.flavor"

      ios:
        bundleId: "br.com.flutter.flavor"
  1. 使用 flutter pub run flutter_flavorizr -p android:androidManifest,android:buildGradle,flutter:flavors,flutter:app,flutter:pages,flutter:targets 自动生成代码。
    在这种情况下,我传递了参数,因为我不需要为 iOS 进行设置。
    如果您有 iOS,只需运行 flutter pub run flutter_flavorizr
    此步骤会将所有配置添加到 `android/app/build.gradle` 和 `ios` 目录以运行口味。

  2. 如果需要,您可以在不同的口味中更改图标。为此,只需在 `android/app/src/` 中添加 `res` 目录,其中包含您应用程序的资源以及不同的徽标。

  3. 如果需要,您可以添加不同的 Firebase 环境。为此,只需将 `google-services.json`(Android)添加到 `android/app/src/`,然后在运行另一个环境时使用。
    附注:您的 CI 可以在所有开发人员拥有资源(例如生产 Firebase 密钥)的情况下,删除不必要的环境。

  4. 在 `flavours.dart` 中,您可以配置创建用于连接 API 的基本 URL,只需查看环境即可。

运行环境的步骤

运行上述命令。
flutter run --flavor <您的环境名称> -t lib/main_<您的环境类名>.dart
在我的情况下,要运行开发环境,我执行:
flutter run --flavor dev -t lib/main_dev.dart

现在您的环境已分开。
如果您在 VS Code 中运行,您可以轻松地将此设置添加到您的项目中,以便在调试时运行不同的环境。

  {
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Development",
            "request": "launch",
            "type": "dart",
            "args": [
                "-t",
                "lib/main_dev.dart",
                "--flavor",
                "dev"
            ]
        },
        {
            "name": "Quality",
            "request": "launch",
            "type": "dart",
            "args": [
                "-t",
                "lib/main_qa.dart",
                "--flavor",
                "qa"
            ]
        },
        {
            "name": "Homologation",
            "request": "launch",
            "type": "dart",
            "args": [
                "-t",
                "lib/main_hom.dart",
                "--flavor",
                "hom"
            ]
        },
        {
            "name": "Production",
            "request": "launch",
            "type": "dart",
            "args": [
                "-t",
                "lib/main_prod.dart",
                "--flavor",
                "prod"
            ],
        },
    ]
}

构建口味的步骤

使用命令运行
flutter build <您的目标> --flavor <您的环境名称> -t lib/main_<您的环境类名>.dart
在我的情况下,要构建生产环境的 appbundle,我执行:
flutter build appbundle --flavor prod -t lib/main_prod.dart

GitHub

查看 Github