360加固(乐固)
如果walle和tinker都已经集成好了,那么恭喜你,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