無(wú)圖無(wú)真相 先看下最終實(shí)現(xiàn)目標(biāo)是什么

Paste_Image.png
setUp 1 生成簽名文件
如果有簽名文件最好 如果沒(méi)有那么就要?jiǎng)?chuàng)建一個(gè)簽名文件

Paste_Image.png

Paste_Image.png

Paste_Image.png

Paste_Image.png

Paste_Image.png

Paste_Image.png
這樣已經(jīng)很清楚了 在不了解請(qǐng)百度 這里有一篇文章可以參考下
setUp2 配置walle
1.配置渠道相關(guān)信息
在App 目錄下新建一個(gè)channel(txt)文件
Qh360 #360
Yyb #應(yīng)用寶
Wdj #豌豆莢
Lenovo #聯(lián)想
Xiaomi #小米
Huawei #華為
Meizhu #魅族

Paste_Image.png
2.在位于項(xiàng)目的根目錄 build.gradle 文件中添加Walle Gradle插件的依賴, 如下:
buildscript {
dependencies {
classpath 'com.meituan.android.walle:plugin:1.1.4'
}
}
3.并在當(dāng)前App的 build.gradle文件中apply這個(gè)插件,并添加上用于讀取渠道號(hào)的AAR
apply plugin: 'walle'
dependencies { compile 'com.meituan.android.walle:library:1.1.4'}
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")
}
解釋以上配置
apkOutputFolder:指定渠道包的輸出路徑, 默認(rèn)值為new File("${project.buildDir}/outputs/apk")
apkFileNameFormat:定制渠道包的APK的文件名稱, 默認(rèn)為'${appName}-${buildType}-${channel}.apk'
projectName - 項(xiàng)目名字
appName - App模塊名字
packageName - applicationId (App包名packageName)
buildType - buildType (release/debug等)
channel - channel名稱 (對(duì)應(yīng)渠道打包中的渠道名字)
versionName - versionName (顯示用的版本號(hào))
versionCode - versionCode (內(nèi)部版本號(hào))
buildTime - buildTime (編譯構(gòu)建日期時(shí)間)
fileSHA1 - fileSHA1 (最終APK文件的SHA1哈希值)
flavorName - 編譯構(gòu)建 productFlavors 名

Paste_Image.png
4.如何獲取渠道信息
在需要渠道等信息時(shí)可以通過(guò)下面代碼進(jìn)行獲取
String channel = WalleChannelReader.getChannel(this.getApplicationContext());
5.如何生成渠道包
生成單個(gè)渠道包: ./gradlew clean assembleReleaseChannels -PchannelList=meituan
生成多個(gè)渠道包: ./gradlew clean assembleReleaseChannels -PchannelList=meituan,dianping
生成所有渠道信息 ./gradlew clean assembleReleaseChannels

Paste_Image.png

Paste_Image.png