如題,使用美團(tuán)walle進(jìn)行多渠道打包碍岔。
關(guān)于安卓原生打包,請(qǐng)移步上一篇文章:原生多渠道打包
官網(wǎng)教程:
https://github.com/Meituan-Dianping/walle
馬上發(fā)車
(一)生成簽名,并在主項(xiàng)目build.gradle配置
核心代碼如下:
簽名配置
注意澡刹,不使用簽名會(huì)在編譯階段null point錯(cuò)誤驶臊。
(二)導(dǎo)入walle相關(guān)依賴
根build.gradle文件依賴如下圖:
根build.gradle新增依賴
主項(xiàng)目buill.gradle新增配置如下:
plugin
library
至此挪挤,依賴配置完成。
(三)配置walle打包參數(shù)
直接在主項(xiàng)目的build.gradle文件中配置关翎,代碼如下:
/**
* apkOutputFolder:指定渠道包的輸出路徑扛门, 默認(rèn)值為new File("${project.buildDir}/outputs/apk")
* channelFile:包含渠道配置信息的文件路徑。
* 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 名
* */
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")
}
對(duì)于channel文件纵寝,放在了app目錄下论寨,如下圖:
channel文件目錄存放位置
至此,配置完畢
(四)開(kāi)始打包
打開(kāi)androidstudio并在terminal輸入相關(guān)指令,這里我輸入的是全渠道打包指令:
gradlew clean assembleReleaseChannels
另外的指令葬凳,也可在github官網(wǎng)查詢得到绰垂。
最后打包完成后的目錄結(jié)構(gòu)圖片如下:
打包生成目錄
最后,附上源碼demo:傳送門
that's all---------------------------------------------------------------------------
備注火焰,對(duì)于加固失效問(wèn)題劲装,請(qǐng)移步官方指引:加固失效