Autoincrement VersionCode with gradle extra properties

前端 未结 16 2248
逝去的感伤
逝去的感伤 2020-11-27 08:47

I\'m building an Android app with gradle. Until now I used the Manifest file to increase the versionCode, but I would like to read the versionCode from an external file and

16条回答
  •  慢半拍i
    慢半拍i (楼主)
    2020-11-27 09:35

    To increment versionCode only in release version do it:

    android {
        compileSdkVersion 21
        buildToolsVersion "21.1.2"
    
        def versionPropsFile = file('version.properties')
        def code = 1;
        if (versionPropsFile.canRead()) {
            def Properties versionProps = new Properties()
    
            versionProps.load(new FileInputStream(versionPropsFile))
            List runTasks = gradle.startParameter.getTaskNames();
            def value = 0
            for (String item : runTasks)
            if ( item.contains("assembleRelease")) {
                value = 1;
            }
            code = Integer.parseInt(versionProps['VERSION_CODE']).intValue() + value
            versionProps['VERSION_CODE']=code.toString()
            versionProps.store(versionPropsFile.newWriter(), null)
        }
        else {
            throw new GradleException("Could not read version.properties!")
        }
    
        defaultConfig {
            applicationId "com.pack"
            minSdkVersion 14
            targetSdkVersion 21
            versionName "1.0."+ code
            versionCode code
        }
    

    expects an existing c://YourProject/app/version.properties file, which you would create by hand before the first build to have VERSION_CODE=8

    File version.properties:

    VERSION_CODE=8

提交回复
热议问题