我们在打包输出的时候希望我们的包文件名是自定义的,例如是包名版本号+渠道名+打包日期+.apk。现在我们就以此为例,来写一个gradle自定义包文件脚本。
//多渠道命名
productFlavors {
m360 { manifestPlaceholders = [UMENG_CHANNEL_VALUE: "360"] }
yingyongbao { manifestPlaceholders = [UMENG_CHANNEL_VALUE: "yingyongbao"] }
}
//自定义输出包文件名
buildTypes {
debug {
signingConfig signingConfigs.release
}
release {
// 不显示log
buildConfigField("boolean", "LOG_DEBUG", "true")
// Zipalign 优化
zipAlignEnabled true
debuggable false
minifyEnabled false
signingConfig signingConfigs.release
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
//就是指定了新的apk的文件名
applicationVariants.all { variant ->
variant.outputs.each { output ->
def outputFile = output.outputFile
if (outputFile != null && outputFile.name.endsWith('.apk')) {
//遍历渠道
productFlavors.each { flavor ->
def myFlavor = flavor
//定义输出文件名
def fileName = "${applicationId}_v${defaultConfig.versionName}_${myFlavor.manifestPlaceholders.UMENG_CHANNEL_VALUE}_${releaseTime()}_release.apk"
output.outputFile = new File(outputFile.parent, fileName)
}
}
}
}
}
}