热修复---之bugly热修复打基准包步骤以及发布(三)

报错:未匹配到可应用补丁包的App版本,请确认补丁包的基线版本是否配置正确
- 原因:
      1.打补丁时,只需将base改为patch
      2.需要更改的包必须运行一次,才能上报到bugly。一般这种情况是没有运行打好的包

 

1.配置基准包的tinkerId (注意这里的base版本必须联网上报 才可以上传补丁包)

设置你的基准版本号 最好是和app version对应

Bugly基线版本

 

2.执行assembleRelease编译生成基准包

android studio的右边选择gradle找到我们接入热更新的model进入build中选择生成的基准包类型:这里可以是ReleaseDebug版本

生成基准包

 

3.这个会在build/outputs/bakApk路径下生成每次编译的基准包、混淆配置文件、资源Id文件,如下图所示

生成的基准Apk目录

这里面有的app-release.apk就是我们需要上线的基线版本,请注意保存线上发布版本的基准apk包、mapping文件、R.txt文件,如果线上版本有bug,就可以借助我们tinker-support插件进行补丁包的生成。

3.如果你没有开启混淆是不会有mapping.txt文件的,需要在Moudlebuild.gradle文件中开启混淆

开启基线混淆

 

怎样生成签名文件这里就不介绍了。

4.对基线版本的bug修复

上面生成了base包了,那就需要去生成patch包了。
基准包的代码:

base包的代码

 

补丁包(patch)的代码:

pacth代码

 

5.根据基线版本生成补丁包

这里需要注意的:基准包目录必须是你上次生成的base包,注意这里是按照时间命名的,检查能否正确,tinkerId 需要生成patch包必须使用 tinkerId="patch-base"版本号对应"

patch补丁生成配置

 

6.执行构建补丁包的task

 

patch补丁包的task


如果你要生成不同编译环境的补丁包,只需要执行TinkerSupport插件生成的task,比如buildTinkerPatchRelease就能生成release编译环境的补丁包。

 

6.生成的补丁包在build/outputs/patch目录下,其中7zip.apk就是我们需要使用的补丁包:

补丁包目录

打开补丁包可以看到里面会有一个YAPATCH.MF,这里面包含了我们是从base版本到patch版本:以及appversion信息

补丁包

 

7.上传补丁包到平台

 


进入到对应appidapp中,选择应用升级,热更新,发布新补丁。

 

发布patch版本,选择补丁文件之后会自动从补丁包的YAPATCH.MF去寻找base版本以及app版本,注意这里的base版本必须联网上报(必须在联网的情况下启动app),才可以上传补丁成功。如果没有

上传补丁包

 

上传了补丁包可以选择下发的范围:

  • 开发设备:仅仅针对设置了开发设备。
  • 利用代码:Bugly.setIsDevelopmentDevice(this, true);设置为开发者设备。
  • 全量设备:针对所有的用户。
  • 自定义:可以设置下发范围:随机下发设置的版本数量,还可以设置android版本范围,仅仅在这个范围内才会下发并且生效。

下发补丁之后:

 

下发补丁的撤回


里面包括了激活的用户数量以及下发的数量,在操作过程中我们可能对于上个补丁不太满意,我们需要发布一个新的补丁,bugly提供了2中操作。

 

停止下发:点击之后将不会在下发bugly补丁,但是之前已经下载并且激活的不会删除掉补丁。

撤回:点击之后将停止下发补丁,并且之前已经下载并且激活的用户将会删除掉补丁包,并且恢复到基准包的版本。

8.检查patch包能否生效

基准包执行效果图:

基准包效果图

修复之后的效果图:

 

补丁合成效果图

如果不能立即生效,需要吧app至于后台一段时间才能生效


转载自:https://www.jianshu.com/p/77ea8d68eacc
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值