在清单文件中进行配置
<meta-data
android:name="UMENG_CHANNEL"
android:value="${CHANNEL}" />
在gradle中配置
android {
productFlavors {
zj {
manifestPlaceholders = [CHANNEL: "zj"]
}
xiaomi {
manifestPlaceholders = [CHANNEL: "xiaomi"]
}
qh360 {
manifestPlaceholders = [CHANNEL: "qh360"]
}
baidu {
manifestPlaceholders = [CHANNEL: "baidu"]
}
wandoujia {
manifestPlaceholders = [CHANNEL: "wandoujia"]
}
}
}
或者这样写
android {
productFlavors {
zj {}
huawei {}
xiaomi {}
// qqyyb {}
// wandoujia {}
// baidu {}
// qh360 {}
// nduow {}
// mumy {}
// lenovo {}
// oppo {}
// vivo {}
// samsung {}
productFlavors.all { flavor ->
flavor.manifestPlaceholders = [CHANNEL: name]
}
}
}
打包的配置
android {
signingConfigs {
// your debug keystore
debug {
storeFile file("buglytestreleasekey.jks")
storePassword "buglytestreleasekey"
keyAlias "buglytestreleasekey"
keyPassword "buglytestreleasekey"
}
release{
storeFile file("buglytestreleasekey.jks")
storePassword "buglytestreleasekey"
keyAlias "buglytestreleasekey"
keyPassword "buglytestreleasekey"
}
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
}
debug {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.debug
}
}
}
编译打包
这样进行操作之后,不仅在平时运行的时候也可以生成正式包并运行,并且在打包的时候,也会生成不同渠道的正式签名包,与正常的操作基本上是一致的,只不过多渠道打包的时候特别慢,如果渠道包过多的话,那就需要很长的时间,因为他每次打包的时候,都相当于重新编译生成,所以生成的渠道包越多,需要的时间越长,除了系统提供的这个方法之外,还有其他的快速生成多渠道包的方案,其中一个就是美团的《一分钟900渠道包》,利用了一些特殊的方法进行快速打包,只是替换了其中的一些文件,从而避免了重新打包的耗时,之后,会在其他的博客中进行更新,敬请期待!