我們?cè)诖虬敵龅臅r(shí)候希望我們的包文件名是自定義的,例如是包名版本號(hào)+渠道名+打包日期+.apk。現(xiàn)在我們就以此為例上真,來(lái)寫(xiě)一個(gè)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 優(yōu)化
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)
}
}
}
}
}
}