Android:仅在Gradle中的Release BuildType上自动增加版本代码

时间:2014-12-25 14:51:34

标签: android gradle release

我已阅读此主题:Autoincrement VersionCode with gradle extra properties

但它似乎增加了每个构建的versionCode(如果经常运行调试版本,则会增加很多)。

有没有办法调整答案,以便VersionCode只在Android Studio中构建发布签名版本时才会增加?

1 个答案:

答案 0 :(得分:0)

对于此解决方案,必须使用文件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
        ...
    }
}