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条目。增强签名格式的安全性和可拓展性,并且在性能方面也有提升--不需要进行昂贵的解压,从而加快应用安装时间。

         

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