Autoincrement VersionCode with gradle extra properties

前端 未结 16 2199
逝去的感伤
逝去的感伤 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:33

    Create file version.properties

    MAJOR=1
    MINOR=3
    PATCH=6
    VERSION_CODE=1
    

    Change build.gradle :

    android {
    def _versionCode=0
    def _major=0
    def _minor=0
    def _patch=0
    
    def _applicationId = "com.example.test"
    
    def versionPropsFile = file('version.properties')
    
    if (versionPropsFile.canRead()) {
        def Properties versionProps = new Properties()
    
        versionProps.load(new FileInputStream(versionPropsFile))
    
        _patch = versionProps['PATCH'].toInteger() + 1
        _major = versionProps['MAJOR'].toInteger()
        _minor = versionProps['MINOR'].toInteger() 
        _versionCode= versionProps['VERSION_CODE'].toInteger()+1
        if(_patch==99)
        {
            _patch=0
            _minor=_minor+1
        }
        if(_major==99){
            _major=0
            _major=_major+1
        }
    
        versionProps['MAJOR']=_major.toString()
        versionProps['MINOR']=_minor.toString()
        versionProps['PATCH']=_patch.toString()
        versionProps['VERSION_CODE']=_versionCode.toString()
        versionProps.store(versionPropsFile.newWriter(), null)
    }
    else {
        throw new GradleException("Could not read version.properties!")
    }
    def _versionName = "${_major}.${_versionCode}.${_minor}.${_patch}"
    
    
    compileSdkVersion 23
    buildToolsVersion "23.0.3"
    
    defaultConfig {
        applicationId _applicationId
        minSdkVersion 11
        targetSdkVersion 23
        versionCode _versionCode
        versionName _versionName
    }
    

    }

    Output : 1.1.3.6

提交回复
热议问题