【发布时间】:2015-02-23 05:46:46
【问题描述】:
我读过这个话题:Autoincrement VersionCode with gradle extra properties
但它似乎在每次构建时增加了versionCode(如果您经常运行调试版本,则会增加很多)。
有没有办法调整答案,使VersionCode 仅在我在Android Studio 中构建发布签名版本时才会增加?
【问题讨论】:
我读过这个话题:Autoincrement VersionCode with gradle extra properties
但它似乎在每次构建时增加了versionCode(如果您经常运行调试版本,则会增加很多)。
有没有办法调整答案,使VersionCode 仅在我在Android Studio 中构建发布签名版本时才会增加?
【问题讨论】:
对于此解决方案,需要一个文件 version.properties。
在 build.gradle 中:
def getVersionCode() {
def propertiesFile = file('version.properties')
if (!propertiesFile.canRead()) {
throw new GradleException("Could not read " + propertiesFile.name)
}
Properties properties = new Properties()
properties.load(new FileInputStream(propertiesFile))
def code = properties['VERSION_CODE_PROD'].toInteger()
gradle.taskGraph.whenReady { tasksGraph ->
List<Task> tasks = tasksGraph.getAllTasks()
for (Task task : tasks) {
if (task.name.contains("Production")) {
code = code + 1
properties['VERSION_CODE_PROD'] = code.toString()
properties.store(propertiesFile.newWriter(), null)
break
}
}
}
return code
}
android {
def code = getVersionCode()
defaultConfig {
...
versionCode code
...
}
}
【讨论】: