记录更新腾讯IMSDK上(升级到V1最⾼版本)
项⽬是16年的项⽬,IMSDK和直播SDK过于⽼旧,TRTC⽤的IM也是V1版本的,由于近期每天都能从Bugly和Firebase抓到⼗⼏个IM的崩溃。也具体拿崩溃去咨询过腾讯的技术,那边每次回复都是SDK过于⽼旧。建议更新到最新版本。
意思就是:我们也是在迭代版本,修复BUG,你不更新SDK这些问题我们也没办法解决。并且SDK版本太⽼,已经不维护了,就是苟延残喘。
其实去年其他的同事已经尝试过更新IMSDK,但是更新后,据同事说,直播间的弹幕就出现问题,⼀个是内存溢出崩溃,再有就是会直播间很卡顿,最后解决不了,放弃了更新启⽤⽼代码。
最近需求不是很多,决定把这个顽固的问题解决掉,更新IMSDK到V2,更新移动直播SDK到V2,更新TRTC到最新版本,相当于重构整个项⽬的所有主要业务,对⾃⼰也是个挑战,撸起袖⼦开⼲,给⾃⼰加个油,开贴记录⼀下本次遇到的坑。
⼀、更新顺序问题
⾸先更新之前就遇到⼀个难题,因为项⽬中主要是3⼤模块,⼀个是直播间,⼀个是私信列表,⼀个是1v1视频通话。
sdk1、如果先重构IMSDK,可能直播DEMO中的代码已经写好的⼀部分,也需要我在⽼代码基础上更新。
2、如果先重构V2TXLive,那更新IMSDK⼜是先决条件。
最后决定,先删除项⽬中的IMSDK,导⼊最新的
这⾥有个坑:⽼项⽬中的IMSDK是直接⼿动导⼊项⽬的,现在要删掉,并且使⽤cocoapods导⼊
第⼀天:
删掉原来的7个库。
WX20210803-182506@2x.png
导⼊IMSDK和移动直播SDK:
pod 'TXLiteAVSDK_Professional' #(8.5.10022)
pod 'TXIMSDK_iOS' #(5.1.60)
后⾯备注⼀下导⼊时的版本号,免得每次在⾥跟腾讯反馈问题时,问我SDK版本号,还得现跑程序看。
Command+R运⾏,不出所料,报错。⼀堆错误。先删掉报错⽂件中引⽤的已被删除的类。还有⼀些API的改变,⼀些变量名的改变。修复了⼀些之后,到了这⾥
1649283-98d783378066264f.png
编译Success,惊讶,⼀百多个报错修复好了,不容易,不敢轻易运⾏,怕好多逻辑都有问题
第六天:
这两天被各种同步异步for循环搞的⾝⼼疲惫,原业务代码,⼀个⽅法,⾥⾯包含2个For循环,每个for
循环⾥⾯是⼀个异步请求,每次请求后会在⼀个数组内增改元素,最后block回调处理后的数组。因为原来的IMSDK⽅法是同步获取的,新SDK改成异步了。这就很⽭盾了。从来没处理过这么复杂线程组合。决定先⽤Demo写出逻辑,并在控制台输出每⼀步,顺序,延迟,逻辑⼀切正常后移植到项⽬中去实现逻辑。
第七天:
⽅法中还包含2个同步请求,全部揉捏在⼀起着实有些乱,将2个同步请求改为异步,放弃使⽤信号量,改为使⽤gcd的group来实现。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论