Flutter 使用不同的应用程序ID构建不同风格的颤振应用程序

Flutter 使用不同的应用程序ID构建不同风格的颤振应用程序,flutter,build,android-productflavors,android-build-flavors,applicationid,Flutter,Build,Android Productflavors,Android Build Flavors,Applicationid,我有一些关于如何正确做到这一点的问题——来自Flatter团队的关于使用Flavors的文档有点缺乏,到目前为止,这些教程和文章似乎都是来自那些在了解Flavors的过程中发帖的人。我对这里的努力表示赞赏,但也认识到知识是不完整的 可以在许多地方设置应用程序ID,特别是在AndroidManifest和build.gradle文件中 例如: 例如: defaultConfig{ //TODO:指定您自己的唯一应用程序ID(https://developer.android.com/studi

我有一些关于如何正确做到这一点的问题——来自Flatter团队的关于使用Flavors的文档有点缺乏,到目前为止,这些教程和文章似乎都是来自那些在了解Flavors的过程中发帖的人。我对这里的努力表示赞赏,但也认识到知识是不完整的

可以在许多地方设置应用程序ID,特别是在AndroidManifest和build.gradle文件中

例如:


例如:

defaultConfig{
//TODO:指定您自己的唯一应用程序ID(https://developer.android.com/studio/build/application-id.html).
applicationId“com.domain.appname”
明斯克版本23
targetSdkVersion 29
versionCode.toInteger()的版本代码
版本名
}
风味维度“appFlavor”
产品风味{
质量保证{
维度“appFlavor”
applicationId“com.domain.app1”
}
刺激{
维度“appFlavor”
applicationId“com.domain.app2”
}
发展{
维度“appFlavor”
applicationId“com.domain.app3”
}
}
应用程序ID还显示在Kotlin MainActivity.kt文件中,以及src目录下该文件的路径中。据我所知,此处指定的值对应用程序功能没有任何影响。但它肯定在某个地方有某种关联

build.gradle中各个口味的相应配置集中设置的值与expeced相同

但是,当您有多个AndroidManifest.xml文件时(例如每种口味一个文件),这些文件都必须指定与主AndroidManifest.xml文件中的文件完全相同的包。尝试忽略该值会导致错误。主AndroidManifest中的值似乎并不重要,只要它与特定于味道的AndroidManifest中的名称匹配即可

但这毫无意义-包名和applicationID如何不同,以及app build.gradle和AndroidManifest之间的冲突

哪一个会被用来做什么


我还有一个关于S.E的问题,我正在处理与缺失插件异常相关的问题,我觉得这可能与此相关:

对于productFlavors块中的每个味道,您可以重新定义applicationId属性,或者,您可以使用applicationIdSuffix将一个段附加到默认应用程序ID


对于productFlavors块内的每个风格,您可以重新定义applicationId属性,或者使用applicationIdSuffix将一个段附加到默认应用程序ID


您确定必须为每种口味添加Android清单吗?在我参与的一个带有flavor的项目中,每个调试、概要文件和版本都只有android清单。@MathisFouques是的,我使用它们为每个flavor提供一个唯一的名称和图标。如果删除AndroidManifests文件将是有益的,在我找到另一个解决方案之前,我可能没有图标和名称。你确定必须为每种口味添加Android清单吗?在我参与的一个带有flavor的项目中,每个调试、概要文件和版本都只有android清单。@MathisFouques是的,我使用它们为每个flavor提供一个唯一的名称和图标。如果删除AndroidManifests文件将是有益的,在我找到另一个解决方案之前,我可能不需要图标和名称。但是build.gradle仅适用于android。但是build.gradle仅适用于android。