gpt4 book ai didi

android - 如何在 Flutter Android 中创建构建变体,以便每个构建变体具有不同的 app id?

转载 作者:行者123 更新时间:2023-12-04 17:30:04 25 4
gpt4 key购买 nike

我需要有 3 个不同的 APK(dev、UAT、prod),每个都针对不同的 Firebase 数据库。但是在每个 Firebase 项目上,我都需要提供一个永久的应用程序 ID。这意味着我需要有 3 个构建变体,每个变体都部署具有不同应用程序 ID 的 APK。但是在 Android Studio 上,我似乎找不到为此目的为 Flutter 构建变体的方法(构建变体部分为空)。

我要找的不是 just a different entry point and different constants ,但完全不同的应用程序 ID。据我所知,在 Flutter 中更改应用名称和应用 ID 需要 6 步 like this .我不认为每次我想更改构建范围时都执行这 6 个步骤是处理此问题的有效且正确的方法。

最佳答案

在 Flutter 中,您应该选择构建风格而不是构建变体(构建风格和构建类型的组合)。 Flutter run有一个 --flavor选项,但不是 buildType .
指定构建风格:
build.gradle下面defaultConfig {} :

android {
...
buildTypes {
release {
// TODO: Add your own signing config for the release build.
// Signing with the debug keys for now, so `flutter run --release` works.
signingConfig signingConfigs.debug
}
debug {
applicationIdSuffix ".debug" // Optional, you don't need to create a separate applicationId for debug.
signingConfig signingConfigs.debug
}
}

flavorDimensions "default"
productFlavors {
dev {
applicationIdSuffix ".dev"
}
qa {
applicationIdSuffix ".qa"
}
prod {
}
}
}
运行具有特定构建风格的 Flutter 应用程序:
  • 在命令行:使用 flutter run --flavor flavorName , 或
  • 在 Android Studio : 运行/调试配置下拉 → 编辑配置... → Additional run args: → 添加 --flavor dev--flavor qa--flavor prod

  • 确认 applicationId 已更改。我用 package_info_plus为了这:
  • 添加 package_info_plus: ^1.0.4pubspec.yaml
  • 在某处添加代码:

  •   PackageInfo.fromPlatform().then((PackageInfo packageInfo) {
    print("Package name: ${packageInfo.packageName}");
    });
  • 包名 将同时具有构建风格和构建类型。就我而言,因为 applicationIdSuffix在这两个 buildTypesproductFlavors , com.example.dev.debug .您可以删除 applicationIdSuffix ".debug"如果你不需要/想要它。

  • 现在我们可以拥有单独的构建 flavor 目录和它们自己的 google-services.json .

    关于android - 如何在 Flutter Android 中创建构建变体,以便每个构建变体具有不同的 app id?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60666045/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com