[英]How to create build variants in Flutter Android so that each build variants have different app id?
我需要 3 个不同的 APK(dev、UAT、prod),每个都针对不同的 Firebase 数据库。 但是在每个 Firebase 项目中,我需要提供一个永久的应用程序 ID。 这意味着我需要有 3 个构建变体,每个变体都部署具有不同应用程序 ID 的 APK。 但是在 Android Studio 上,我似乎找不到为此目的为 Flutter 构建变体的方法(构建变体部分为空)。
我正在寻找的不仅仅是不同的入口点和不同的常量,而是完全不同的应用程序 ID。 据我所知,更改 Flutter 中的应用程序名称和应用程序 ID 需要这样的 6 个步骤。 我不认为每次我想更改构建 scope 时执行这 6 个步骤是处理此问题的有效且正确的方法。
在 Flutter 中,您应该使用 select 构建风格而不是构建变体(构建风格和构建类型的组合)。 Flutter run
有一个--flavor
选项,但没有buildType
。
在defaultConfig {}
下面build.gradle
中:
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 run --flavor flavorName
,或者Additional run args:
→ 添加--flavor dev
或--flavor qa
或--flavor prod
确认 applicationId 已更改。 我为此使用package_info_plus :
package_info_plus: ^1.0.4
到pubspec.yaml
PackageInfo.fromPlatform().then((PackageInfo packageInfo) {
print("Package name: ${packageInfo.packageName}");
});
applicationIdSuffix
在buildTypes
和productFlavors
中, com.example.dev.debug
。 如果您不需要/不想要它,您可以删除applicationIdSuffix ".debug"
。 现在我们可以有单独的构建风格目录和它们自己的google-services.json
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.