支持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(修正):写入渠道信息 

需要  walle-cli-all.jar 包 https://github.com/Meituan-Dianping/walle/blob/master/walle-cli/walle-cli-all.jar

执行命令:
命令一:(单个写入,如果未指定目录,生成的新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


你可能感兴趣的:(Android)