gradle-为不同的生成类型设置不同的versionName

gradle-为不同的生成类型设置不同的versionName,gradle,android-gradle-plugin,Gradle,Android Gradle Plugin,我想使用不同的versionCode和versionName进行调试和发布构建,但我不确定如何实现这一点。我不想只添加后缀,我想在两种构建类型之间生成完全不同的版本代码。具体来说,对于调试版本和发布版本,最好将versionCode分别设置为getDebugVersionCode()和getReleaseVersionCode()。我该怎么做?谢谢。您可以尝试使用来自的解决方案 根据它,可以像这样更改versionName和versionCode: android { application

我想使用不同的
versionCode
versionName
进行调试和发布构建,但我不确定如何实现这一点。我不想只添加后缀,我想在两种构建类型之间生成完全不同的版本代码。具体来说,对于调试版本和发布版本,最好将versionCode分别设置为
getDebugVersionCode()
getReleaseVersionCode()
。我该怎么做?谢谢。

您可以尝试使用来自的解决方案

根据它,可以像这样更改
versionName
versionCode

android {
  applicationVariants.all { variant ->     
    def flavor = variant.mergedFlavor      
    if (variant.buildType.isDebuggable()) {           
       //set properties for debug
       flavor.versionName = 'version-name-for-debug`;
       flavor.versionCode = 6;
    } else {
       //set properties for release
       flavor.versionName = 'version-name-for-relese`;
       flavor.versionCode = 8;
    }
  }
}

我认为你正在寻找的解决方案是

另外,下面是我的gradle文件中的实现:

    android {
        applicationVariants.all { variant ->
            if (variant.buildType.isDebuggable()) {
                //set properties for debug
                variant.outputs.each { output ->
                    output.versionNameOverride = "DEBUG-VERSION";
                    output.versionCodeOverride = 1
                }
            }
        }
    }

在SO上发布另一个(相关)答案的链接是一个好的评论。抄袭另一个答案(本质上,就是你在这里所做的事情)永远都不好@实际上,我发布的代码片段与链接中的解决方案不同。这是我自己在我的一个项目中实现的问题。我发布了这个链接,以便OP可以看到相同问题的其他解决方案。