1、定义versionName基础前缀
android {
defaultConfig {
...
versionName "APP-"
}
...
}
默认配置中填写需要的versionName
前缀用于拼接。
2、定义聚道包维度
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
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
。