android - 覆盖风味和构建类型之外的应用程序 ID
问题描述
我有一个具有多种风格 ( A,B,C
) 和两种构建类型 ( debug
, release
)的应用程序
在构建类型debug
中,我向应用程序 ID 添加后缀,如下所示:
debug {
applicationIdSuffix '.debug'
}
这对风味很好A
,B
但我不能附加.debug
到风味C
的应用程序 ID。
我已经看过像我一样覆盖变体versionCode
但没有运气。
applicationVariants.all { variant ->
def changedVersionCode = variant.versionCode
variant.
variant.outputs.each { output ->
if (variant.buildType.name != "debug") {
output.setVersionCodeOverride(project.ext.versionCode)
changedVersionCode = project.ext.versionCode
}
}
changeApkFileName(variant,changedVersionCode)
}
是否可以根据风格覆盖变体应用程序 ID。例如,我的计划是做这样的事情:
variant.buildType.name.replace('.debug','')
解决方案
是否可以根据风格覆盖变体应用程序 ID
对的,这是可能的。
您无法看到预期 id 的原因是:
因为 Gradle 在产品风味之后应用构建类型配置,所以“C”构建变体的应用程序 ID 将是“
<your-applicaion-id>.debug
”。
因此,如果您希望它对不同的口味有所不同,那么您必须将不同的口味分开applicationIdSuffix
并将其从debug {}
以下内容中删除:
android {
defaultConfig {
applicationId "<your-application-id>"
}
productFlavors {
A {
applicationIdSuffix ".debug"
}
B {
applicationIdSuffix ".debug"
}
C {
applicationIdSuffix ""
}
}
}
更多详细信息,请参阅官方文档。
推荐阅读
- r - 错误没有适用于“ggplot_build”的方法应用于“格子”类的对象
- css - 如何在 Angular 9 中将 ngStyle 样式应用于焦点状态
- python - Django过滤相关模型属性
- gradle - 如何将 -Xlint:unchecked 添加到 Gradle *从命令行 *?
- arrays - 我无法在 swift 中使用搜索栏搜索/过滤图像
- angular - 编辑图标未显示在 ag-grid 中
- mysql - mysql 选择查询结果与 COUNT(*) 和 * 错误
- python - 我的 VSCode 无法运行带有“不被识别为 cmdlet 的名称”问题的 py 文件
- cmake - 为什么一些静态库被移动到 /lib 文件夹?
- reactjs - 谁在 nextjs 中使用 scss