很多时候我们需要根据不同的渠道生成不同的安装包,这时候我们就需要用到多渠道打包配置。
1.在项目app跟目录下创建一个channel.gradle文件,用来配置我们的渠道。
channel.gradle
ext {
CHANNELS = [
"custom",
"huawei",
"xiaomi",
"vivo",
"oppo",
"yingyongbao"
]
}
2.在项目app中build.gradle引入channel.gradle文件,并使用
apply from: “channel.gradle”
flavorDimensions "default"
productFlavors {
CHANNELS.each { channel ->
"$channel" {
buildConfigField "String", "CHANNEL_ID", "\"$name\""
//根据渠道号修改应用名称
if (channel == "vivo") {
resValue "string", "app_name", "应用程序名A"
} else {
resValue "string", "app_name", "应用程序名B"
}
}
}
}
3.修改打包资源输出路径(打包后的apk输出路径)
applicationVariants.all { variant ->
variant.outputs.each { output ->
def apkName = "默认的应用名称"
def flavorName = variant.productFlavors[0].name
def createTime = new Date().format("YYYY-MM-dd-HH-mm-ss", TimeZone.getTimeZone("GMT+08:00"))
if (variant.buildType.name == "release") {
output.outputFileName = "${apkName}-${flavorName}-${versionName}.apk"
variant.packageApplicationProvider.get().outputDirectory =
new File("路径随意/${versionName}\\app/${createTime}/${variant.productFlavors[0].name}")
}
}
}
4.执行打包Build->Generate Signed Bundle / APK
选择自己需要打包的渠道,可多选
等待打包完成
这个就是我们需要的安装包啦,这样就可以根据不同平台的审核规则去修改配置了
end