不要恶意升级App第三方SDK

有个不好的习惯,时常去看看Podfile里依赖的第三方库有没有新版本,老想把这些SDK升级到最新版本。感觉最新版肯定是更加稳定修复了很多BUG。但是做开发的都知道,BUG是写出来,不写什么BUG就没有,写了就会有潜在的隐藏BUG。

这不没听领导的劝,6月底发版的时候把七鱼SDK 从v6.10.0 升级到v7.5.0,把华为分析SDK从v6.3.2.301升级到v6.5.0.300,在友盟APM后台看崩溃情况傻眼了,七鱼SDK在 iOS 9 iPad 上闪退严重可复现,华为SDK也出现不少闪退,但是无法复现。

首先找到七鱼技术售后,当前使用版本 - QY_iOS_SDK (7.5.0): - NIMSDK_LITE (= 8.8.3) ,给到反馈是云信SDK问题,v6.10.0版本的云信版本是v8.7.2的 这个问题在v8.11.0修复了,需要升级下云信SDK v8.8.3 —> v8.11.0 , 至少v8.11.0版本 参考升级云信sdk:http://help.qiyukf.com/?p=8471

另外七鱼SDK有三个问题也一直若隐若现出现很久,也一并反馈,得到回复也都是在 v8.11.0 得到修复

七鱼SDK有三个问题:

1、QYSDK  Attempted to dereference garbage pointer 0x1e3a322.1 QYSDK 0x0000000103fd588c sentrycrashobjc_objectType + [SentryCrashObjC.c : 1145]

2、QYSDK Application threw exception NSRangeException: NSMutableRLEArray replaceObjectsInRange:withObject:length:: Out of bounds13 QYSDK 0x0000000107e1a5c4 __48-[QYQYSentryBreadcrumbTracker swizzleSendAction]_block_invoke_2 + [SentryBreadcrumbTracker.m : 114]

3、QYSDK Application threw exception NSGenericException: Attempt to invoke -_activityImage on <_UIShareServiceActivityProxy_Share: 0x28285b9c0>, which is not supported for proxies to out-of-process activities.20 QYSDK 0x00000001056e2124 -[UICollectionView(YSFRefresh) ysf_reloadData] + [UIScrollView+YSFRefresh.m : 136]

不过升级新版本代价也是有的,七鱼SDK 依赖云信,v8.8.3 –> v8.11.0 SDK 大小从 98.2M –> 156.8M,大小直接涨了60%了,虽然最终到Appstore大小会小,但是体积大了,最终包肯定也会变大,虽然也告知他们正在做瘦身,最终还是决定降级不升了。

华为分析SDK最终也是通过升级SDK,修复了问题,所以还是不要轻易升级SDK。

所以大版本的SDK升级还是要慎重,除非有明确版本适配问题,较大的BUG,如果没有问题还是不要轻易升级。

在v7.7.0版本中,七鱼定制了网易云信IM,做了瘦身,降到45.7M,太棒了,还是忍不住升级。