我想应用不同的VersionCode来制作apk文件.
对于调试,仅将其修复为1,并释放defaultConfig中指定的任何数字.
下面的代码将mypackage-release-1.apk文件作为assembleRelease工件提供,这是不期望的.我期待mypackage-release-10111.apk.
为什么行调试{defaultConfig.versionCode = 1}会影响assembleRelease工件?
defaultConfig {
versionCode 10111
versionName '2.5.4'
minSdkVersion 10
targetSdkVersion 21
}
signingConfigs {
debug {
project.ext.loadSign = false
defaultConfig.versionCode = 1 // Why this value applied to assembleRelease?
}
release {
project.ext.loadSign = true
applicationVariants.all { variant ->
variant.outputs.each { output ->
def file = output.outputFile
output.outputFile = new File(file.parent, file.name.replace(".apk", "-" + defaultConfig.versionCode + ".apk"))
}
}
}
}
buildTypes {
debug {
signingConfig signingConfigs.debug
}
release {
signingConfig signingConfigs.release
}
}
解决方法:
我也是,但我认为在build.gradle编译时设置了defaultConfig.versionCode.它是全局静态变量,在编译时分配,而不是运行时.
我认为我们可以拦截gradle任务执行,并在运行时修改defaultConfig.versionCode.
标签:android,android-gradle,build-gradle
来源: https://codeday.me/bug/20191005/1856881.html