packer-ng-plugin 360渠道打包的心酸路以及簽名V1、V2區別

      昨天APP終於要上線!!!項目批量打包使用的是 packer-ng-plugin 2.0.1,其他應用渠道打包完成之後專攻360APK。衆所周知,360應用市場上傳必須加固,加固完成後的APK需要重新簽名、添加渠道信息,可參考:#86#64,方可上傳應用市場。在簽名和添加渠道信息的過程中遇到一些坑,分享出來。

      使用gradle clean assembleRelease打出APK放在360加固工具加固後,下載放在本地。packer-ng-plugin 2.0.1已經支持V2簽名,所以接下來APK簽名是V2了, 可以參考Android開發之通過apksigner對apk進行v2簽名,裏面很詳細介紹瞭如何使用Android/SDK/../build-tools工具進行簽名的。這裏只是把一些命令行記錄下來,分以下幾個步驟:

        1、zipAlign:首先進入到build-tools目錄下,輸入命令行:
                ./zipalign -v -p 4 input.apk out.apk  (Mac)
                ./zipalign.exe -v -p 4 input.apk out.apk (Window)

        2、apksigner:該目錄在build-tools/lib,注意,v2簽名是在7.0後才推出的,所以請在sdk>25才能找到apksigner.jar。首先進入build-tools/lib下,輸入命令行

                java -jar apksigner.jar sign //執行簽名操作 
                --ks 你的jks路徑 //jks簽名證書路徑
                --ks-key-alias 你的alias //生成jks時指定的alias
                --ks-pass pass:你的密碼 //KeyStore密碼
                --key-pass pass:你的密碼 //簽署者的密碼,即生成jks時指定alias對應的密碼
                --out output.apk //輸出路徑
                input.apk //被簽名的apk
        示例:
    java -jar apksigner.jar sign --ks xxx.jks --ks-key-alias 自己指定的alias --ks-pass pass:密碼 --key-pass pass:密碼 --out output.apk input.apk

        查看apk簽名狀態:java -jar apksigner.jar verify -v my.apk

      至此V2簽名已被搞定,接下來就是使用packer-ng-plugin添加渠道信息了。GitHub詳細地介紹瞭如何使用命令行腳本打包渠道信息,只想說一句,開發者需要下載packer-ng-2.0.1.jar工具,爲了方便以後打包,請放置在項目根目錄下,然後在AS輸入命令行:java -jar pack-ng-2.0.1.jar genrate [email protected] --output=apk存放目錄 被簽名的apk 。大功告成!

        附錄:V1、V2簽名的區別:

        v1簽名只對未壓縮對文件內容進行驗證,所以APK在簽名之後依然可以修改--文件可以移動,甚至可以重寫壓縮。

        v2簽名驗證了歸檔中對所有字節,而不是單獨的ZIP條目。增強簽名格式的安全性和可拓展性,並且在性能方面也有提升--不需要進行昂貴的解壓,從而加快應用安裝時間。

         

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