小插曲
领导反馈,让业务人员捋清楚版本号太复杂了,能不能把版本号加在文件名上面?
前言
相信打包这个活初级开发都接触过,androidStudio默认会帮我们把包打成debug,和release
但是很多时候我们需要对这些包增加区分度。来方便我们的运维同学帮我们挂包,或者是产品同学帮我们上架不同渠道
区分度
比如我们会加上应用名,版本号,渠道,时间戳,最后是我们默认的打包类型
具体实现
//这个要写在android节点外面
def releaseTime() {
return new Date().format("yyyyMMdd", TimeZone.getDefault());
}
// 一定要写在android节点中
applicationVariants.all { variant ->
variant.outputs.all {
// 显示app名称+当前版本号
def fileName = "handair-V${variant.versionName}-C${variant.versionCode}"
// 加入打包时间
fileName = fileName + "-${releaseTime()}"
// // 如果有渠道,显示渠道名""
// if (variant.flavorName!=""){
// fileName = fileName + "-${variant.flavorName}"
// }
// 如果是debug版本,加入beta版本号
if ('debug'.equals(variant.buildType.name)) {
fileName = fileName + "-debug.apk"
} else if('uat'.equals(variant.buildType.name)){
fileName = fileName + "-uat.apk"
} else {
// 如果是release版本,直接显示
fileName = fileName + "-release.apk"
}
outputFileName = fileName
}
}
总结
这个内容很简单,我就不过多解读了。常见问题最多的就是网上,有很多gradle的早期版本配置,编译检查的时候会提示,过时的方法。上面的写法时针对高版本的gradle的
这里补充一下gradle的版本
classpath 'com.android.tools.build:gradle:4.0.1'
推荐最佳实践:
直接由前端人员在android包里面把版本信息读取出来