1、Bugtags
集成简单,支持手动和CocoaPods集成;使用方便,直接在应用中所见即所得提交 Bug,自动上传截图、操作步骤、控制台日志等数据,适合在测试阶段使用。
2、Fabric
集成相比Bugtags要复杂多了,需要下载客户端软件,运行客户端,生成脚本,并把脚本复制到Xcode项目的相关地方,然后引入相应框架,根据客户端提示一步一步操作下去;使用Fabric要注意上传每个版本的dysm文件,有助于准确定位错误代码;Fabric除了crash的收集定位(Fabric Crashlytics),还可以追踪用户在应用程序执行期间的行为偏好(Fabric Answers),比较适合线上版本使用。
3、友盟错误分析
错误分析是友盟为移动开发者提供的Crash收集和分析工具,是应用统计里面的一个功能。集成很简单,支持手动和CocoaPods集成。我集成的是UMengAnalytics-NO-IDFA无IDFA版iOS SDK,毕竟iOS的审核还是比较麻烦的。下面说说自己的使用感受:
从图中可以看出友盟记录的数据还是很全的,基本我们需要的数据都有了,也可以根据版本、UUID、操作系统、机型删选错误;还可以根据不同的条件为错误添加标签,便于快速分类及查找错误;还可以在友盟后台网站批量导出错误,并借助命令行工具将错误快速定位到具体的代码行数。
然后说说其他方面的问题:
1)、友盟是根据版本号来区分的,而一般我们确定下一版本号后就按着这个版本来开发了,然后问题就出现了,友盟没法区分当前问题是发生在开发环境还是生产环境,没办法单独查看开发环境或者生产环境的数据,包括友盟的数据分析也有这个问题。解决办法就是用不同的版本号来区分,或者干脆申请两个appkey,一个用来开发,一个用来测试,听听就觉得好麻烦呀……
2)、我集成的是UMengAnalytics-NO-IDFA无IDFA版iOS SDK,不知道是不是没有用标准版的原因,友盟上的bug收集总是会有延迟或遗漏现象。
3)、每天展示当日发生的错误,且每天至多展示1000条错误类型。当错误类型超过1000条时,当日错误列表中的数据不再更新。次日恢复。这是友盟官方的说明,反正我是没有遇到,相信一般也不会遇到这个问题。
4、Device Logs
当一个iOS应用程序崩溃时,系统会创建一份crash日志保存在设备上。这份crash日志记录着应用程序崩溃时的信息,通常包含着每个执行线程的栈调用信息(低内存闪退日志例外),对于开发人员定位问题很有帮助。
那么问题来了,怎么获取设备的crash日志呢?
这样就可以看到你所选择的设备下的Device Logs了,然后根据时间排序查看设备上的crash日志。这是开发、测试阶段最经常采用的方式。
这样就可以获取用户的crash日志。不过这并不是100%有效的,而且大多数开发者并不依赖于此,因为这需要用户设备同意上传相关信息,并且设备默认是不发送的。
以上是我用过的几个工具,没有用过的我也就不瞎扯了,欢迎大家补充。