前言
當你看到這篇博客,我默認你已經掌握了walle配置多渠道,如果沒有請移步之前的博客Gradle+Walle全新二代簽名打包工具。
問題
我們使用walle配置好多渠道包的時候,發布360市場的時候需要對apk包進行加固處理,但是這么一處理,我們的apk包中注入的渠道號就會被沖掉,這時,就需要我們重新手動注入渠道號。
問題知道,解決問題
1.加固
直接下載pc版的加固助手,然后將要上傳給360市場的apk通過助手加固,但是不要選擇自動簽名
加固助手不勾選簽名.jpg
助手加固好了的apk會自動下載到默認的輸出路徑,我為了查找方便就改變了輸出路徑
加固完畢路徑設置.jpg
2.zipalign 對齊(方便起見,命令行窗口不要關)
通過第一步,我們已經拿到了經過360加固之后的apk文件,但是渠道已經丟失了。
我們進入sdk目錄下的build-tools目錄下,選個版本25+的目錄,shift + 鼠標右鍵 -->在此處打開命令行,執行命令:
zipalign -v 4 [加固好的apk路徑] [對齊好的apk路徑]
對齊操作.png
建議對齊好的apk與原來加固的apk同目錄,加個后綴以示區別
對齊成功.png
3.重新簽名(方便起見,命令行窗口不要關)
同樣通過命令行執行(需要在build-tools 25+的目錄中打開命令行,所有不要關步驟2的命令行窗口)命令如下
apksigner sign --ks [你的簽名文件] [apk路徑]
重新簽名.png
為了方便起見,我把簽名文件也扔在這個目錄下,重新簽名需要我們輸入簽名文件的密碼,但是這個密碼是看不見的,所以我們需要記住,不要輸錯了。
4.檢查是否為v2簽名(方便起見,命令行窗口不要關)
當前步驟可有可無,看到這一步的肯定都是v2簽名。但是還是建議走一遍。
這里需要下載v2簽名檢查jar包CheckAndroidV2Signature.jar。
(如上上圖所示,我還是扔在同一目錄下)
執行命令如下:
java -jar [CheckAndroidV2Signature.jar路徑] [apk路徑]
校驗是否是二代簽名.png
執行命令后返回:
{"ret":0,"msg":"ok","isV2":true,"isV2OK":true} 是 V2 簽名的App
{"ret":0,"msg":"ok","isV2":false,"isV2OK":false}不是 V2 簽名的App
4. 重新注入渠道號(方便起見,命令行窗口不要關)
最后一步也是關鍵的一步,同樣也是需要下載walle-cli-all.jar文件。(如上上上圖所示,我還是仍在同一目錄下)
執行命令行(-c 和渠道名是分開的,不要連在一起)
java -jar [walle-cli-all.jar路徑] put -c [渠道名] [apk路徑] [生成的apk路徑(可選)]
最后一步,注入渠道號.png
注入成功.png
渠道號參照自己項目中的格式,最后附上當前項目中的markets文件
市場渠道號.png