多渠道兩種打包方式:
一.利用android studio的productFlavors去多渠道打包薪棒。速度慢伞芹,讓人崩潰。但與市場上的一些加固無縫接入浦徊。
二.利用美團的walle单鹿,快速高效掀宋,但是在加固上需要特殊處理。?
首先介紹第一種:
配置渠道
我們在項目的build.grade的android中添加:
然后在簽名打包時候就可以單一選中或者多選擇渠道打包了
重點介紹第二種:(windows)
利用android studio打出apk仲锄,然后利用美團的walle配置直接打包
對該工具的原理感興趣的同學劲妙,可以移步美團Android新一代渠道包生成工具進行了解。
但是問題來了昼窗,如果按照這種方式去加固是趴,需要對所有包一一加固,速度慢澄惊,而且加固之后不能獲取到對應的渠道名了唆途,對于渠道埋點受到影響富雅。所以借鑒網上多方資料,對于walle打包和加固的結合肛搬,請網上看:
步驟1:只加固不簽名
之前打出的apk没佑,有的說需要簽名,有的說不需要簽名温赔,但對我的理解是去加固的apk肯定是不要簽名的蛤奢,但是加固工具當你把apk傳給它進行加固時,如果有簽名的會把簽名給去掉然后進行加固陶贼,最后得到的加固包就是所有步驟的一個基礎啤贩。ps:反正我把簽名的包和不簽名的包兩種都去加固了,最后都是可行的拜秧,還有一點重要的是:如果用pc版 的加固助手時痹屹,請把自動簽名的勾去掉。
步驟2:zipalign枉氮,apksigner加入path中
因為上面的兩個命令在C:\Users\Administrator\AppData\Local\Android\Sdk\build-tools\25.0.2(需要25以上版本)中志衍,所以為了調用方便,請加入系統(tǒng)環(huán)境中
步驟3:優(yōu)化 聊替,zipalign -v 4 【加固包路徑】【優(yōu)化包想要放的路徑】
舉例:zipalign -v 4 C:\Users\robin\Desktop\xxx.apk C:\Users\robin\Desktop\xxx_zipalign.apk
步驟4:重新v2簽名楼肪,apksigner sign --ks [你的簽名文件] [優(yōu)化過的apk路徑] ?
apksigner sign --ks D:\xxx.keystore C:\Users\robin\Desktop\xxx_zipalign.apk
執(zhí)行上面語句會提示密碼:
Keystore password for signer #1: xxxxx
執(zhí)行完之后xxx_zipalign.apk就是簽名過的包,還是原來那一個
步驟5:驗證是否是v2簽名惹悄,需要CheckAndroidV2Signature.jar春叫,下載地址:https://github.com/bihe0832/AndroidGetAPKInfo/blob/master/
java -jar 【CheckAndroidV2Signature的路徑】【簽名過的包路徑】
java -jar C:\Users\robin\Desktop\CheckAndroidV2Signature.jar C:\Users\robin\Desktop\xxx_zipalign.apk
返回true就行
{"ret":0,"msg":"ok","isV2":true,"isV2OK":true}
步驟6:walle注入渠道:需要walle-cli-all.jar,下載地址:https://github.com/Meituan-Dianping/walle/blob/master/walle-cli/walle-cli-all.jar
單個注入:
java -jar walle-cli-all.jar put -c [單個注入的名稱(例如qq,360..)] [apk路徑]
java -jar walle-cli-all.jar put -c qq xxx_zipalign.apk
批量注入:
java -jar walle-cli-all.jar put -c [channel是個渠道名稱的列表文件] [apk路徑]
java -jar walle-cli-all.jar batch -f channel xxx_zipalign.apk
所有的輸出路徑都跟原apk的路徑一致
參考資料:
支持Android7.0 Signature V2 Scheme 多渠道打包俘侠,并解決類似360加固后獲取不到渠道信息 - 渠道統(tǒng)計失敗的問題