继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

查看上线app的Crash或者是用户手机的Crash

ibeautiful
关注TA
已关注
手记 514
粉丝 108
获赞 529

工作了这么久,但是还是没有好好的处理一下线上的Crash以及用户手机的Crash,正好公司要求,然后今天处理一下,做个记录

我们公司使用的是友盟的Crash统计,今天就说说如何通过友盟找出线上的Crash.
估计其他的也都如此,不在赘述:
需要的东西:

  • 1.Crash的文件(在友盟后台,他们默认将Crash放到了execel表中)

  • 2.dYSM文件(Crash版本必须使用对应包的dYSM文件,否则不成功)

  • 3.友盟的umcrashtool工具


具体实施:

1.获取Crash的文件

图1.友盟的后台获取Crash文档


图2.奔溃日志列表

图3.友盟错误详情,但是全都是内存地址,看不懂

2.获取dYSM文件
这个一定要使用对应Crash的版本,切记

图4.在包列表中找到对应的版本

图5.找到.xcarchive结尾的,右键显示包内容

图6.拷贝.dSYM文件

目标位置:~/Library/Developer/Xcode/

图7.放置完毕效果图

3.设置友盟的umcrashtool工具

图8.友盟工具获取的地址

图9.将友盟工具和Crash日志文件放到桌面的文件夹中

图10.拖工具和execl表到命令行,然后回车,符号化日志,获取结果 友盟的日志要重上往下读,应为有start,end

剩下的就是自己看这个然后获取具体的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>

图11.方法一.手机上的奔溃

图12.手机链接完电脑,通过特定上边写的路径,获取到的文件们 找到对应的奔溃日志,给我们

如果用户和你关系很好,要是发送了Crash,你可以要求他发松这个文件给你,然后查找问题

  • 2.Xcode获取


    图13.方法二.Xcode查找奔溃日志

图14.Xcode看到的日志

  • 3.iTunesConnect获取


    图15.方法三.iTunesConnect查找奔溃日志


    但是这个有的时候不好使,不一定及时更新,用户不开始上报,白扯


图16.Bug产生的原因

图17.Crash日志都是16进制保存的,我们要去给他”符号化“

图18.符号化所需要的东西

图19.符号化完毕的东西,从后面往前读

图20.符号化的图

图21.未符号化的Crash日志,主要看看各部分的含义

(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) 二进制映像
这部分列出了闪退时已经加载的二进制文件。



作者:王鑫20111
链接:https://www.jianshu.com/p/e220dd11bab8


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP