前言
当你看到这篇博客,我默认你已经掌握了walle配置多渠道,如果没有请移步之前的博客Gradle+Walle全新二代签名打包工具。
问题
我们使用walle配置好多渠道包的时候,发布360市场的时候需要对apk包进行加固处理,但是这么一处理,我们的apk包中注入的渠道号就会被冲掉,这时,就需要我们重新手动注入渠道号。
问题知道,解决问题
1.加固
直接下载pc版的加固助手,然后将要上传给360市场的apk通过助手加固,但是不要选择自动签名
助手加固好了的apk会自动下载到默认的输出路径,我为了查找方便就改变了输出路径
2.zipalign 对齐(方便起见,命令行窗口不要关)
通过第一步,我们已经拿到了经过360加固之后的apk文件,但是渠道已经丢失了。
我们进入sdk目录下的build-tools目录下,选个版本25+的目录,shift + 鼠标右键 -->在此处打开命令行,执行命令:
zipalign -v 4 [加固好的apk路径] [对齐好的apk路径]
建议对齐好的apk与原来加固的apk同目录,加个后缀以示区别
3.重新签名(方便起见,命令行窗口不要关)
同样通过命令行执行(需要在build-tools 25+的目录中打开命令行,所有不要关步骤2的命令行窗口)命令如下
apksigner sign --ks [你的签名文件] [apk路径]
为了方便起见,我把签名文件也扔在这个目录下,重新签名需要我们输入签名文件的密码,但是这个密码是看不见的,所以我们需要记住,不要输错了。
4.检查是否为v2签名(方便起见,命令行窗口不要关)
当前步骤可有可无,看到这一步的肯定都是v2签名。但是还是建议走一遍。
这里需要下载v2签名检查jar包CheckAndroidV2Signature.jar。
(如上上图所示,我还是扔在同一目录下)
执行命令如下:
java -jar [CheckAndroidV2Signature.jar路径] [apk路径]
执行命令后返回:
{"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路径(可选)]
渠道号参照自己项目中的格式,最后附上当前项目中的markets文件