The*_*aan 5 build android-productflavors flutter android-build-flavors applicationid
我对如何正确执行此操作有一些疑问 - Flutter 团队关于使用 Flavors 的文档有些缺乏,到目前为止,教程和文章似乎都来自那些在了解它时发布的人。我很欣赏这里的努力,但也认识到知识是不完整的。
应用程序 ID 可以在多个位置设置,特别是在 AndroidManifest 和 build.gradle 文件中。
例子:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.domain.app">
<!-- io.flutter.app.FlutterApplication is an android.app.Application that
calls FlutterMain.startInitialization(this); in its onCreate method.
In most cases you can leave this as-is, but you if you want to provide
additional functionality it is fine to subclass or reimplement
FlutterApplication and put your custom class here. -->
<uses-permission android:name="android.permission.INTERNET"/>
Run Code Online (Sandbox Code Playgroud)
例子:
defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "com.domain.appname"
minSdkVersion 23
targetSdkVersion 29
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
}
flavorDimensions "appFlavor"
productFlavors {
qa {
dimension "appFlavor"
applicationId "com.domain.appflavor1"
}
prod {
dimension "appFlavor"
applicationId "com.domain.appflavor2"
}
dev {
dimension "appFlavor"
applicationId "com.domain.appflavor3"
}
}
Run Code Online (Sandbox Code Playgroud)
应用程序 ID 还出现在 Kotlin MainActivity.kt 文件中,以及 src 目录下该文件的路径中。据我所知,此处指定的值不会对应用程序功能产生任何影响。但它肯定在某个地方有一定的相关性。
build.gradle 中各个风格的相应配置集中设置的值按预期工作。
但是,当您有多个 AndroidManifest.xml 文件时(例如,每种风格一个),这些文件都必须指定与主 AndroidManifest.xml 文件中的包完全相同的包。尝试忽略该值会导致错误。主 AndroidManifest 中的值似乎并不重要,只要它与特定风味 AndroidManifest 中的名称匹配即可
但这没有意义——包名和applicationID怎么会不同,并且应用程序build.gradle和AndroidManifest之间会发生冲突呢?
哪一个具体用途是什么?
我在 SE 上还有另一个问题,我正在与 MissingPlugin 异常相关的问题作斗争,我觉得这些问题可能与这里相关:Flutter issues with release-mode only APK builds
小智 0
对于 ProductFlavors 块中的每种风味,您可以重新定义 applicationId 属性,也可以使用 applicationIdSuffix 将段附加到默认应用程序 ID
https://developer.android.com/studio/build/application-id
| 归档时间: |
|
| 查看次数: |
2585 次 |
| 最近记录: |