渠道信息一般在 AndroidManifest.xml 中修改以下值:
首先你必须在AndroidManifest.xml中的meta-data修改以下的样子:
<meta-data android:name="UMENG_CHANNEL"
android:value="${UMENG_CHANNEL_VALUE}" />
其中 ${UMENG_CHANNEL_VALUE} 中的值就是你在gradle中自定义配置的值。
build.gradle文件就利用productFlavors:
productFlavors {
wandoujia {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "wandoujia"]
}
baidu {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "baidu"]
}
360 {
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "360"]
}
}其中 [UMENG_CHANNEL_VALUE: "wandoujia"] 就是对应 ${UMENG_CHANNEL_VALUE} 的值。
更简洁的写法
productFlavors {
wandoujia { }
baidu { }
360 { }
productFlavors.all { flavor ->
flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
}
}
其中 name 的值对相对应各个 productFlavors 的选项值,这样就达到自动替换渠道值的目的了。
设置输出apk名称
buildTypes {
release {
applicationVariants.all { variant ->
variant.outputs.each { output ->
def outputFile = output.outputFile
if (outputFile != null && outputFile.name.endsWith('.apk')) {
// 输出apk名称为boohee_v1.0_2015-01-15_wandoujia.apk
def fileName = "app_v${defaultConfig.versionName}_${releaseTime()}_${variant.productFlavors[0].name}.apk"
output.outputFile = new File(outputFile.parent, fileName)
}
}
}
}
}
一次生成所有渠道包
在android studio底栏中有个命令行工具 Terminal
gradlew assembleRelease 就可以一次性生成所有的渠道包了
单独生成渠道包
gradle assembleWandoujiaRelease
android studio 友盟多渠道打包
最新推荐文章于 2024-04-22 03:06:40 发布