1、定义versionName基础前缀 {#1%E3%80%81%E5%AE%9A%E4%B9%89versionname%E5%9F%BA%E7%A1%80%E5%89%8D%E7%BC%80}
android {
defaultConfig {
...
versionName "APP-"
}
...
`}`
默认配置中填写需要的versionName
前缀用于拼接。
2、定义聚道包维度 {#2%E3%80%81%E5%AE%9A%E4%B9%89%E8%81%9A%E9%81%93%E5%8C%85%E7%BB%B4%E5%BA%A6}
android {
...
//聚道包维度
flavorDimensions 'default', 'custom'
productFlavors {
one {
dimension "default"
versionNameSuffix "O"
//定义变量
manifestPlaceholders = [
PRODUCT_FLAVORS: 'ONE'
]
}
three {
dimension "default"
versionNameSuffix "T"
//定义变量
manifestPlaceholders = [
PRODUCT_FLAVORS: 'THREE'
]
}
/标准版
standard {
dimension "custom"
versionNameSuffix "S"
}
//单机版
standAlone{
dimension "custom"
versionNameSuffix "SA"
}
}
...
`}`
根据实际需要创建多种聚道包维度;
示例中将会打出4种安装包:oneStandard
、oneStandAlone
、threeStandard
、threeStandAlone
。
3、添加编译生成versionName {#3%E3%80%81%E6%B7%BB%E5%8A%A0%E7%BC%96%E8%AF%91%E7%94%9F%E6%88%90versionname}
android {
...
// 动态设置最终的版本号
android.applicationVariants.configureEach { variant ->
// 根据flavor的versionNameSuffix和默认的versionName设置完整versionName
def baseVersionName = defaultConfig.versionName
def flavorSuffixes = variant.productFlavors.collect { it.versionNameSuffix }.join("")
// 获取当前时间并格式化
def dateFormat = 'yyMMddHHmm'
def currentTime = new Date().format(dateFormat)
variant.outputs.configureEach { output ->
//设置最终的版本号
output.versionNameOverride = ("${baseVersionName}${flavorSuffixes}${currentTime}")
//设置输出安装包名称
output.outputFileName = "${versionName}.apk"
}
}
...
`}`
最终版本号形式:APP-OS2410201345.apk
;
此设置将会使打包出的apk名称
以及应用的versionName
都设置为APP-OS2410201345.apk
。