Android的 - 基于构建类型变化的味道版本名称 [英] Android - change flavor version name based on build type
问题描述
我想更改版本的名称为应用程序的口味,但只有当它的调试版本。
(如调试版本将会有像1.0.1 D(调试)555或1.0.1 P(调试)555版本,但我只想要发布版本有类似的版本1.0.1) 我怎样才能做到这一点?
基本上,我有这些建类型:
buildTypes {
调试{
versionNameSuffix(调试)+ mBuild
}
推出 {
runProguard真
proguardFiles getDefaultProguardFile('ProGuard的-的Android optimize.txt),文件(ProGuard的-project.txt)
signingConfig signingConfigs.release
}
}
和这些味道(对于不同的API环境下):
productFlavors {
开发{
VERSIONNAME = android.defaultConfig.versionName +D
}
督促{
VERSIONNAME = android.defaultConfig.versionName +P
}
}
有什么办法如何让发布版本没有产品口味版本名称的变化?
我试图动态设置版本名称通过
buildTypes.each {buildType - >
如果(buildType.name =='调试'){
productFlavors.dev.versionName = android.defaultConfig.versionName +D
}
}
但这会导致
找不到物业开发的GroupableProductFlavorDsl容器。
在寻找我已经成功地删除使用该code到版本名称为制作发布版本所有的变化小时
applicationVariants.all {变种 - >
如果(variant.buildType.name =='释放'){
variant.mergedFlavor.versionName = android.defaultConfig.versionName;
}
}
I want to change version name for app flavors but only if it's a debug build.
(e.g. debug builds will have versions like 1.0.1 D (DEBUG) 555 or 1.0.1 P (DEBUG) 555, however I want the release builds only to have version like 1.0.1) How can I achieve this?
Basically I have these build types:
buildTypes {
debug {
versionNameSuffix " (DEBUG) " + mBuild
}
release {
runProguard true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), file('proguard-project.txt')
signingConfig signingConfigs.release
}
}
and these flavors (for different api environment):
productFlavors {
dev {
versionName = android.defaultConfig.versionName + " D"
}
prod {
versionName = android.defaultConfig.versionName + " P"
}
}
Is there any way how to make release builds without product flavors version name change?
I've tried to set the version name dynamically via
buildTypes.each { buildType ->
if(buildType.name == 'debug') {
productFlavors.dev.versionName = android.defaultConfig.versionName + " D"
}
}
but this results in
Could not find property 'dev' on GroupableProductFlavorDsl container.
After hours of searching I've managed to remove all the changes made to the version name for the release build using this code
applicationVariants.all { variant ->
if (variant.buildType.name == 'release') {
variant.mergedFlavor.versionName = android.defaultConfig.versionName;
}
}
这篇关于Android的 - 基于构建类型变化的味道版本名称的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!