美文网首页
ProtectedApkResignerForWalle一步解决

ProtectedApkResignerForWalle一步解决

作者: zzl93 | 来源:发表于2018-03-02 17:34 被阅读342次

    最近使用walle+tinker的方式来实现多渠道打包和热修复,但是遇到一个问题:使用walle生产的渠道包进行360加固后获取不到渠道信息!!!
    怎么解决?walle官方推荐了两种办法:
    方法一:操作步骤http://blog.csdn.net/jason_2016/article/details/58137497
    方法二:ay-Goo同学写了一个工具,专门修复类似360加固重签名和批量注入渠道,2秒搞定。支持全平台 https://github.com/Jay-Goo/ProtectedApkResignerForWalle

    补充:其中方法一中有个错误,就是V2签名这里这么配置是错误的 image.png

    应该改为下面这样:

    apksigner 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
    

    示例:

    apksigner sign  --ks key.jks  --ks-key-alias releasekey  --ks-pass pass:pp123456  --key-pass pass:pp123456  --out output.apk  input.apk
    

    下面回到本篇文章的主题!!!

    因为方法一操作步骤过于复杂,而方法二又过于简单。。。so,选择方法二。
    下面就讲一下方法二ProtectedApkResignerForWalle的操作步骤:
    1、按照config.py文件中的注释改成自己项目配置
    2、将已经加固好的包【未签名的包,请不要使用加固客户端签名工具】放到脚本工具根目录下,即app-release.encrypted.apk
    3、各种渠道的定义是在channel这个文件中,请根据项目情况修改
    4、运行命令 python ApkResigner.py,即可自动生成所有渠道包。

    步骤1字段如何填写: image.png

    keystorePath、keyAlias、keystorePassword、keyPassword:就按项目中签名那里配置的信息填写
    protectedSourceApkName:加固后的apk的名字(记得要带.apk)
    protectedSourceApkDirPath、channelsOutputFilePath、channelFilePath:不填写即代表在默认路径上
    sdkBuildToolPath:sdk/build-tools目录下的25.0.0以上的版本路径

    步骤2: image.png
    步骤3: image.png
    打开channel,在里面写上渠道

    步骤4:进入到脚本的文件夹下,然后运行python ApkResigner.py命令即可。

    最后生成的渠道包在此文件夹下 image.png

    那么,如何验证用此方法生成的渠道包可以获取到渠道信息呢???
    通过String umeng_channel = WalleChannelReader.getChannel(mContext);获取渠道信息,然后吐司看下是否有实际信息。


    image.png

    相关文章

      网友评论

          本文标题:ProtectedApkResignerForWalle一步解决

          本文链接:https://www.haomeiwen.com/subject/ytoaxftx.html