动态修改VersionCode

每次发布release、debug版本的时候,都需要手动修改versionCode的值,为了避免麻烦,可以让VersionVode根据指定规则自动生成,我这里是根据时间来生成;
VersionCode、versionNameSuffix生成代码:

ext.revisionNumberCMD = 'git rev-list HEAD --count'
ext.revisionNumber = revisionNumberCMD.execute().getText().trim().toInteger()   //git提交次数
ext.revisionDescriptionCMD = 'git describe --always'
ext.tempRevisionDescription = revisionDescriptionCMD.execute().getText().trim() //获取commitid
ext.revisionDescription = (tempRevisionDescription == null || (tempRevisionDescription).size() == 0) ? new Date().format("yyMMdd") : (tempRevisionDescription).substring((tempRevisionDescription).size() - 6)

def getVersionCode(boolean flag) {  //获取APP版本号
    String today = new Date().format("yyyyMMdd")
    String time = new Date().format("HHmmss")

    Integer.parseInt(today) + Integer.parseInt(time)
}

def getVersionNameSuffix(String buildType) {    //获取versionNameSuffix的后缀名
    "." + buildType + "." + revisionDescription
}

给VersionCode、VersionNameSuffix赋值

android {
	......
	
    defaultConfig {
        ......
        versionCode getVersionCode(false) //75 这个方法必须带一个参数,否则调用不到
		......


    buildTypes {
		......
        debug { //测试开发版本
            debuggable true    //是否为debug状态,也可以不配置,默认为true
            applicationIdSuffix '.test'    //这里是在applicationId中添加了一个后缀
            versionNameSuffix getVersionNameSuffix("Debug") //'.Debug'       //这个会显示在版本号后面
            proguardFiles 'proguard-rules.pro'
        }

        debugSign.initWith(debug)
        debugSign { //测试打包版本,给非开发人员的安装版本
            signingConfig signingConfigs.debugSign
            versionNameSuffix getVersionNameSuffix("DebugSign")     //版本号,一直往上加
            matchingFallbacks = ['release', 'debug']    //关键代码,release, debug为library中已有buildType
        }
	}
	......
}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值