walle多渠道打包+Tinker(bugly)热更新集成(360加固(乐固)后渠道丢失解决方案)

360加固(乐固)

如果walletinker都已经集成好了,那么恭喜你,walle多渠道打包后还有另外一个坑等着你....
当你使用walle打了渠道包后进行加固签名,你会发现写入的渠道信息丢失。。。 不要怀疑这不是你的姿势不对,加固重新签名后渠道信息会丢失,同时加固签名后tinker热更新也无效了,logcat中会提示合并失败了... WTF? 莫鸡冻,解决办法还是有的

下面开始解决问题:

  • 开启tinker的加固支持,默认是关闭的。打开tinker-support.gradle,设置isProtectedApp = true(默认是被注释了,取消注释即可)。

  • 不再使用walle的 ./gradlew clean assembleReleaseChannels 生成各个渠道包,而是使用./gradlew clean assembleRelease 生成基线版本包。(windows下不要前面的./ )

  • 生成的基线版本包就是在集成tinker提到的基线包,一般在build/bakApk/应用名-时间的文件夹下,将基线版本包上传到360后台进行加固,加固好后下载下来,不要进行签名 (切记 不要用360PC端加固工具加固 PC端工具会强制签名)

  • 将 https://github.com/Jay-Goo/ProtectedApkResignerForWalle 工具下载下来解压,将集成walle时候配置的channel文件拷贝到根目录,将下载的加固后的apk也拷贝的根目录下,按照官方文档修改配置文件,配置秘钥和文件路径信息,注意配置的sdkBuildTool的路径,这是你的Android Sdk的build tools的路径,建议25.0以上。配置好后运行命令:python ApkResigner.py

需要python环境

你可能感兴趣的:(walle多渠道打包+Tinker(bugly)热更新集成(360加固(乐固)后渠道丢失解决方案))