Bugly热更新遇到的问题点

1.前言

最近在项目里面打算集成腾讯的Bugly热更新和奔溃记录,这里遇到一些集成过程中遇到的问题,记录一下

1.集成

集成先按官方文档的来,我是在androidstudio3.0集成的,建议去github拿到最新的热更新版本号,不然as会提示你更新,然后就是dex我按照1.0.1配置的,按照官方的1.0.2我的会提示报错冲突
Warning:Conflict with dependency 'com.android.support:multidex' in project ':app'. Resolved versions for app (1.0.2) and test app (1.0.1) differ. See http://g.co/androidstudio/app-test-app-conflict for details.

图片.png

这里我推荐使用不改变自己的原有application的配置方法,这样可以不用改变你原有的application结构,里面的代码直接粘github里面的案例,注意这个改成false,因为我的项目还没上线,所以测试全量设备没事


S_X~CKF8ZTY776WZGKFL6CF.gif
图片.png

用自己的application记得把这个设置成true


图片.png

2.调试

然后我就一路按文档构建签名打包,记得先写一个bug在打包,然后我就直接用这里打好的包跑起来,然后在更改bug打补丁包,然后运行起来,后台上传补丁直接提示没有对应基线版本,然后查看文档发现有一个多渠道打包,后来发现多渠道打包支持原生的productFlavors打包方式,可是问题来了,每一个渠道都要一个渠道补丁,我这么偷懒的人怎么能这么干呢,参考文档https://buglydevteam.github.io/2017/05/15/solution-of-multiple-channel-hotpatch/又是一顿替换打包方式,替换成美团的wallt,一切配置好之后又开始打包了,官方推荐的是命令行打包,其实可以在as右侧有个绿色圆圈里面也可以一键打包

Bugly热更新遇到的问题点_第1张图片
图片.png

如图:
Bugly热更新遇到的问题点_第2张图片
图片.png

然后我打完之后发现没有patch路径,只有一个,当然上传的补丁也是识别不到的了,找了半天才发现原来是弄错了打补丁的地方,眼神不行,然后又是一顿打包安装,这次是安装上了,但是并没有官方说的基线版本上报的日志,最后我补丁下发成功也没看到这个所谓的上报日志,估计眼神不行了。发送补丁包需要冷启动才能生效,这个跟trinker的修复原理有关,所以需要杀死进程进去测试。(补丁下发需要一定时间,可以打包的时候去上个厕所)
图片.png

Bugly热更新遇到的问题点_第3张图片
图片.png

3.总结

最后总算是集成进来了,然后补丁也打上了,最后总结一下,这里官方有两种方式编译patch补丁包


Bugly热更新遇到的问题点_第4张图片
图片.png

两种我都尝试过了,都是可以的,然后就是你上传补丁的时候可能匹配的版本跟你的版本名字不一样,那是因为你打的多渠道包的名字不一样,不必惊慌,还有就是这里文档里面没加,我是加了的,最好还是加一下吧,最后。重要的事情说三遍,上线的版本打的基础包一定要保存,一定要保存,保存,不然没地方打补丁,网上有人说编译失败要关掉instantrun,而我就不一样了,我直接不开启。差不多就这么多了,如果不用自动生成id,打补丁的时候一定要在你的tinkerId后面原来的号码上面加点啥,至于加点啥看个人爱好了。使用这些第三方sdk还是很方便的对我们的开发,但是集成的时候感觉不难,实际操作的时候还是有难度的。对于老项目跟换打包方式可能对统计有影响,但是你觉得是修复bug重要呢还是修复bug重要呢。

Bugly热更新遇到的问题点_第5张图片
图片.png

你可能感兴趣的:(Bugly热更新遇到的问题点)