Android Studio 为多渠道执行自定义名称打包命令:
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
applicationVariants.all { variant ->
variant.outputs.each { output ->
def outputFile = output.outputFile
if (outputFile != null && outputFile.name.endsWith('.apk')) {
// 计划输出apk名称为App_V1.0.0_baidu.apk
def fileName = "App_V${variant.productFlavors.versionName}_${variant.productFlavors.name}.apk"
output.outputFile = new File(outputFile.parent, fileName)
}
}
}
下面是多渠道配置:
android {
productFlavors {
baidu {
applicationId "com.liujc.demo.baidu"
versionCode 1
versionName "1.0.0"
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "baidu",
APP_NAME : "app应用01", //app名称
]
buildConfigField "String", "API_APP_ID", "\"10001\""
}
xiaomi {
versionCode 2
versionName "1.0.1"
applicationId "com.liujc.demo.xiaomi"
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "xiaomi",
APP_NAME : "app应用02", //app名称
]
buildConfigField "String", "API_APP_ID", "\"10002\""
}
}
}
打包成功后你会发现包名为:App_V[1.0.0]_[baidu].apk ,这不是我想要的啊,怎么都多了个中括号呢,修改打包代码:
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
applicationVariants.all { variant ->
variant.outputs.each { output ->
def outputFile = output.outputFile
if (outputFile != null && outputFile.name.endsWith('.apk')) {
// 计划输出apk名称为App_V1.0.0_baidu.apk
def fileName = "App_V${variant.productFlavors[0].versionName}_${variant.productFlavors[0].name}.apk"
output.outputFile = new File(outputFile.parent, fileName)
}
}
}
再重新打包,成功后发现包名为:App_V1.0.0_baidu.apk OK了。