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, "");
友盟集成文檔的初始化方法: