工作了这么久,但是还是没有好好的处理一下线上的Crash以及用户手机的Crash,正好公司要求,然后今天处理一下,做个记录
我们公司使用的是友盟的Crash统计,今天就说说如何通过友盟找出线上的Crash.
估计其他的也都如此,不在赘述:
需要的东西:
- 1.Crash的文件(在友盟后台,他们默认将Crash放到了execel表中)
- 2.dYSM文件(Crash版本必须使用对应包的dYSM文件,否则不成功)
- 3.友盟的
umcrashtool
工具
具体实施:
1.获取Crash的文件
2.获取dYSM文件
这个一定要使用对应Crash的版本,切记
目标位置:~/Library/Developer/Xcode/
3.设置友盟的umcrashtool工具
剩下的就是自己看这个然后获取具体的bug信息,查找问题了
其他
刚才说的,是使用友盟的东西,但是如果说用户使用了我们的app,但是我们没使用其他第三方工具手机Crash日志,怎么办?
这里就不得不说说如何手机Crash日志的方法了:
1.通过用户的手机获取
2.通过Xcode获取
3.通过iTunsConnect
iOS设备上的应用闪退时, 操作系统会声称一个崩溃日志, 保存在设备上。
路径是: 设置 -> 隐私 ->诊断与用量 ->诊断与用量数据。在这里可以看到设备上所有的设备崩溃日志.
- 1.连接设备获取崩溃日志
设备与电脑上的ITunes Store同步后, 会将崩溃日志保存在电脑上,崩溃日志保存在以下位置:
设备与电脑上的iTunes Store同步后,会将崩溃日志保存在电脑上。根据电脑操作系统的不同,崩溃日志将保存在以下位置:
Mac OS X:~/Library/Logs/CrashReporter/MobileDevice/
Windows XP: C:Documents and Settings<USERNAME>Application DataApple ComputerLogsCrashReporterMobileDevice<DEVICE_NAME>
Windows Vista or 7: C:Users<USERNAME>AppDataRoamingApple ComputerLogsCrashReporterMobileDevice<DEVICE_NAME>
如果用户和你关系很好,要是发送了Crash,你可以要求他发松这个文件给你,然后查找问题
-
2.Xcode获取
-
3.iTunesConnect获取
但是这个有的时候不好使,不一定及时更新,用户不开始上报,白扯
(1) 进程信息
第一部分是闪退进程的相关信息。
Incident Identifier是崩溃报告的唯一标识符。
CrashReporter Key 是与设备标识相对应的唯一键值。虽然它不是真正的设备标识符,但也是一个非常有用的情报:如果你看到100个崩溃日志的CrashReporter Key值都是相同的,或者只有少数几个不同的CrashReport值,说明这不是一个普遍的问题,只发生在一个或少数几个设备上。
Hardware Model 标识设备类型。 如果很多崩溃日志都是来自相同的设备类型,说明应用只在某特定类型的设备上有问题。上面的日志里,崩溃日志产生的设备是iPhone 4s。
Process 是应用名称。中括号里面的数字是闪退时应用的进程ID。
(2) 基本信息
这部分给出了一些基本信息,包括闪退发生的日期和时间,设备的iOS版本。如果有很多崩溃日志都来自iOS 6.0,说明问题只发生在iOS 6.0上。
(3) 异常
在这部分,你可以看到闪退发生时抛出的异常类型。还能看到异常编码和抛出异常的线程。根据崩溃报告类型的不同,在这部分你还能看到一些另外的信息。
(4) 线程回溯
这部分提供应用中所有线程的回溯日志。 回溯是闪退发生时所有活动帧清单。它包含闪退发生时调用函数的清单。
(5) 线程状态
这部分是闪退时寄存器中的值。一般不需要这部分的信息,因为回溯部分的信息已经足够让你找出问题所在。
(6) 二进制映像
这部分列出了闪退时已经加载的二进制文件。
参考文章:
iOS应用崩溃日志分析