#####一.多环境编译背景
1 我们新建一个Android项目,
获取是否debug标记 如下:
public static boolean isTest = BuildConfig.DEBUG;
2 编译打包默认的编译命令 如下:
//编译并打Debug包(windows: gradlew ;mac/linux : ./gradlew)
gradlew assembleDebug
//编译并打Release的包
gradlew assembleRelease
通过 BuildConfig.DEBUG 判断是否是debug版本 ,从而打出两种环境的apk.
如果我们有多种环境的域名 ,需要配置多种环境,就做不到了。
####二.友盟多渠道打包
很自然的我们想到了友盟的多渠道打包
1 app/manifest.xml 文件中 设置
<meta-data
android:name="UMENG_CHANNEL_NAME"
android:value="CHANNEL_VALUE" />
2 然后在 app/build.gradle中设置
//产品渠道配置
flavorDimensions "api"
productFlavors {
uat {
}
ops {
}
prod {
}
productFlavors.all {
flavor ->
flavor.manifestPlaceholders = [UMENG_CHANNEL_NAME: name]
}
3 获取flavor的值 即 meta-data 中UMENG_CHANNEL_NAME的值 如下
// 获取友盟禅道 UMENG_CHANNEL 对应的value
private static Strin