tinker补丁提示成功但未生效问题

最近将项目的gradle和gradle插件升级到最新,tinker也升级到最新,然而发现tinker在部分手机上提示补丁修复成功,但是实际上并没有修复成功的问题。下载官方的demo测试发现是好的,排查了半天,发现是项目中tinker设置了isProtectedApp = true这个属性导致的。
这个属性表示是否开启加固,默认是false,将该值改为false后打补丁就没问题了。

但是我们项目是需要加固的啊!!

要加固的话这个值就得设置成true,不然加固后的包就无法修复。
那为什么设置为true后,补丁就不生效了呢?

原来是我安装的包是未加固的,如果安装的加固的包,就没问题......

也就是,如果你打开了isProtectedApp这个开关,那么需要被修复的包,就得是加固后的。(可是为什么有的手机未加固的包也能生效呢)

梳理一下加固包打补丁的过程

  1. 首先打基准包,这个包要保留下来
  2. 将基准包加固,加固后再重新签名,打渠道包
  3. 发布步骤2生成的包
  4. 线上出现bug啦,需要补丁修复
  5. 找到步骤1的基准包,注意这个包是未加固的,把这个基准包当作old.apk
    6.修复bug,执行打补丁命令,生成补丁
  6. 将补丁上传的公司服务器进行下发

ps:我用的是乐固加固

你可能感兴趣的:(tinker补丁提示成功但未生效问题)