Autoincrement VersionCode with gradle extra properties

前端 未结 16 2211
逝去的感伤
逝去的感伤 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条回答
  •  死守一世寂寞
    2020-11-27 09:29

    in the Gradle 5.1.1 version on mac ive changed how the task names got retrieved, i althought tried to get build flavour / type from build but was to lazy to split the task name:

    def versionPropsFile = file('version.properties')
    if (versionPropsFile.canRead()) {
        def Properties versionProps = new Properties()
    
        versionProps.load(new FileInputStream(versionPropsFile))
    
        def value = 0
    
        def runTasks = gradle.getStartParameter().getTaskRequests().toString()
    
        if (runTasks.contains('assemble') || runTasks.contains('assembleRelease') || runTasks.contains('aR')) {
            value = 1
        }
    
        def versionMajor = 1
        def versionMinor = 0
        def versionPatch = versionProps['VERSION_PATCH'].toInteger() + value
        def versionBuild = versionProps['VERSION_BUILD'].toInteger() + 1
        def versionNumber = versionProps['VERSION_NUMBER'].toInteger() + value
    
        versionProps['VERSION_PATCH'] = versionPatch.toString()
        versionProps['VERSION_BUILD'] = versionBuild.toString()
        versionProps['VERSION_NUMBER'] = versionNumber.toString()
    
        versionProps.store(versionPropsFile.newWriter(), null)
    
        defaultConfig {
            applicationId "de.evomotion.ms10"
            minSdkVersion 21
            targetSdkVersion 28
            versionCode versionNumber
            versionName "${versionMajor}.${versionMinor}.${versionPatch} (${versionBuild})"
            testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
            signingConfig signingConfigs.debug
        }
    
    } else {
        throw new GradleException("Could not read version.properties!")
    }
    

    code is from @just_user this one

提交回复
热议问题