支持Android7.0 Signature V2 Scheme 多渠道打包,並解決類似360加固後獲取不到渠道信息 - 渠道統計失敗的問題

轉自:http://18e0c209.wiz01.com/share/s/0oUc890scQDx2tkMAj02NI0c3Ubmms31ckdr2UwE0E2X-bzY
在看本文之前,先了解
1. Android Signature V2 Scheme 介紹:http://blog.bihe0832.com/android-v2-signature.html
2. Android Signature V2 Scheme簽名下的新一代渠道包打包神器(鏈接:https://github.com/itang01/walle 或 http://tech.meituan.com/android-apk-v2-signature-scheme.html

以360渠道爲例:

步驟1:將應用上傳360加固(網頁-上傳和加固(不簽名),加固完後下載到本地備用。注:不是使用360加固助手(因爲PC版會 加固並簽名應用,而且使用的是V1(傳統)簽名))

步驟2:使用Android SDK中的zipalign - 對齊操作 - 優化

利用tools文件夾下的zipalign工具。首先調出cmd命令行,然後執行:zipalign -v 4 source.apk androidres.apk。這個方法不受API Level的限制,可以對任何版本的APK執行Align優化。

檢查當前APK是否已經執行過Align優化。命令:zipalign -c -v 4 androidres.apk


a. 打開CMD,進入Android SDK -> build-tools -> 25.+目錄,


   例如:C:\Users\Administrator\AppData\Local\Android\Sdk\build-tools\25.0.2


b. 執行命令:

    zipalign -v 4 C:\Users\Administrator\Desktop\_360jiagu\奇魚旅行_qiyu_v1.2.5_7_20170124_jiagu_nosign.apk C:\Users\Administrator\Desktop\_360jiagu\奇魚旅行_qiyu_v1.2.5_7_20170124_jiagu_zipalign_nosign.apk

步驟3使用V2簽名工具再次簽名加固後的Apk

a. 打開CMD,進入Android SDK -> build-tools -> 25.+目錄,

    例如:C:\Users\Administrator\AppData\Local\Android\Sdk\build-tools\25.0.2

b. 執行命令:

    apksigner sign --ks D:\Test\qy_trip.jks C:\Users\Administrator\Desktop\apksigner\奇魚旅行20170209_v1.2.5_qiyu_jiagu_no_zipalign_v2_sign_pre.apk
    apksigner sign --ks [你的簽名文件] [apk路徑]

步驟4:檢查是否使用V2簽名

需要jar包,CheckAndroidV2Signature.jar 下載鏈接:https://github.com/bihe0832/AndroidGetAPKInfo/blob/master/CheckAndroidV2Signature.jar

執行命令:
java -jar C:\Users\Administrator\Desktop\apksigner\CheckAndroidV2Signature.jar C:\Users\Administrator\Desktop\_360jiagu\奇魚旅行_qiyu_v1.2.5_7_20170124_jiagu_zipalign_sign_pre.apk

執行命令後返回:
{"ret":0,"msg":"ok","isV2":true,"isV2OK":true}    是    V2 簽名的App
{"ret":0,"msg":"ok","isV2":false,"isV2OK":false} 不是 V2 簽名的App

步驟5(修正):寫入渠道信息 


執行命令:
命令一:(單個寫入,如果未指定目錄,生成的新Apk與[apk路徑]同級目錄)
java -jar walle-cli-all.jar put -c qiyu C:\Users\Administrator\Desktop\apksigner\qiyu_jiagu_zipalign_v2_sign_walla_channel_tools.apk
java -jar walle-cli-all.jar put -c [渠道名] [apk路徑]
java -jar walle-cli-all.jar put -c [渠道名] [apk路徑] [生成的apk路徑可選]

命令二:(批量寫入,如果未指定目錄,生成的新apk與[apk路徑]同級目錄)
java -jar walle-cli-all.jar batch -f C:\Users\Administrator\Desktop\apksigner\channel C:\Users\Administrator\Desktop\apksigner\qiyu_jiagu_zipalign_v2_sign_walla_channel_tools.apk C:\Users\Administrator\Desktop\apksigner\apk
java -jar walle-cli-all.jar put -c [渠道文件] [apk路徑] [生成的新apk路徑可選]

其他命令:
顯示當前apk中的渠道和額外信息:
java -jar walle-cli-all.jar show C:\Users\Administrator\Desktop\apksigner\qiyu_jiagu_zipalign_v2_sign_walla_channel_tools_itang.apk

最後,安裝app,代碼獲取渠道信息打印驗證是否能夠獲取到渠道信息,結果:360加固後的簽名和渠道配置成功


根據上面的的邏輯,實現了一個渠道化工具

http://download.csdn.net/download/jason_2016/9765391


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章