Bugly和Crashlytics调研(iOS)

4,232 阅读2分钟

1.产品定位(官网宣传)

Bugly: 腾讯产品,为移动开发者提供专业的异常上报和运营统计,帮助开发者快速发现并解决异常,同时掌握产品运营动态,及时跟进用户反馈。

Crashlytics:谷歌产品,一个轻量级的实时崩溃报告解决方案,可帮助您对影响应用质量的稳定性问题进行跟踪、确定优先解决顺序并加以修复。Crashlytics 会对崩溃进行智能分组并突出显示导致这些崩溃的环境因素,从而为您节省问题排查的时间。

2.功能对比

2.1 实时性:(上下分别为 Bugly ,Crashlytics,下同)

5117FE032392B37132473E1BCBFE6253.png

4E42504A797C81A07259E55D98731369.png

这是测试在登录界面强制产生bug,在控制台获取的具体信息。其中:Bugly虽然现在(2020/03/14)显示的是在3/11号检测到了该bug信息,但在测试发现,当前并没有立刻观察到该信息,即使刷新控制台也并没有发现;Crashlytics是在产生bug后的2min后刷新界面后看到的该信息。

2.2 信息可读性:

17C044194E6AB2BBB4E41D0E693EA1D9.png

25DAF083912C56B2FC5D04ED00B6464D.png

在读取具体产生bug信息上:虽然Bugly上传了符号表,但是阅读产生崩溃信息还是不清晰明了,'_$s10TopsProSys27ExpressParentViewController....'大致表示了问题的原因应该是出在这个类中;Crashlytics中通过左边的异常箭头以及后面的信息,我们可以明确的定位了在'HomeViewConreoller'这个类的393行代码出现了异常。

2.3 SDK配置

Bugly: cocoapods配置,工程中需要加入脚本,控制台每次都需要上传dDYM文件;
Crashlytics:cocoapods配置,工程中需要加入脚本。

2.4 其他

Bugly:服务器在国内,更新和升级比较方便;语言方面也有优势。
Crashlytics: 服务器在国外,更新和升级比较麻烦,需要借助一些工具去科学一下的网上🏄🏿。

3. 更换步骤

后续如果需要替换需要:

1. 首先在 Firebase 控制台中将 Firebase 添加到您的应用中。
2. 通过 CocoaPods 或 Gradle 添加 Crashlytics SDK,然后 Crashlytics 就会开始收集报告。
3. app内实现一行配置代码。
4.其他注意: 强制进行崩溃时,需要断开xcode与模拟器的链接,或者使用真机实现;发现缺少dysm符号表之后,可以通过此命令上传 : /path/to/pods/directory/FirebaseCrashlytics/upload-symbols-gsp /path/to/GoogleService-Info.plist -p ios /path/to/dSYMs 具体知道链接:console.firebase.google.com/project/con…