walle的github地址:https://github.com/Meituan-Dianping/walle
1、项目的根目录 build.gradle 文件中添加Walle Gradle插件的依赖
buildscript {
dependencies {
classpath 'com.meituan.android.walle:plugin:1.1.6'
}
}
2、app的 build.gradle 文件中apply这个插件,并添加依赖和配置
apply plugin: 'walle'
dependencies {
compile 'com.meituan.android.walle:library:1.1.6'
}
walle {
// 指定渠道包的输出路径
apkOutputFolder = new File("${project.buildDir}/outputs/channels")
// 定制渠道包的APK的文件名称
apkFileNameFormat = '${appName}-${packageName}-${channel}-${buildType}-v${versionName}-${versionCode}-${buildTime}.apk'
// 渠道配置文件
channelFile = new File("${project.getProjectDir()}/channel")
}
3、创建一个没有后缀、名为channel的文件(注意:文件后缀.txt一定要删除,否则执行打包命令读取不到配置的渠道信息,只能生成一个没有渠道信息的包),配置渠道信息:
4、打包:
在控制台下的Terminal执行打包命令:
gradlew clean assembleReleaseChannels
然后在build/outputs/channels目录下会生成channel文件配置的所有渠道的包:
5、补充:
(1)之前项目manifest文件中配置的多渠道信息可以删除了
<meta-data
android:name="UMENG_APPKEY"
android:value="${umeng_appkey}" />
<meta-data
android:name="UMENG_CHANNEL"
android:value="${umeng_channel}" />
(2)之前友盟初始化方法
UMConfigure.init(this, UMConfigure.DEVICE_TYPE_PHONE, "");
替换为:
//获取渠道信息
String channel = WalleChannelReader.getChannel(this.getApplicationContext());
UMConfigure.init(this, BuildConfig.UMENG_APPKEY, channel, UMConfigure.DEVICE_TYPE_PHONE, "");
友盟集成文档的初始化方法: