您的位置:首页 > 移动开发 > IOS开发

iOS日常Debug之Crash日志文件分析

2017-07-08 23:25 399 查看
好久没写博客了,真的不是忙没有时间。就是懒!闲话少说,言归正传。事件起因,群里一个朋友说自己的app被拒了,苹果给的被拒原因是AppStore审核指南条例2.1,说是app存在崩溃。还附带上了Crash日志文件。看了一眼Crash日志文件,彻底懵了!



What?(此处略过一句脏话)

一、查看Crash日志文件信息

看到这种东西,我第一反应就是跑去看官方文档

Incident Identifier:crash报告的唯一标识符。

CrashReporter Key:每台设备的匿名标识符。

Hardware Model:crash产生的设备类型

OS Version:设备操作系统版本

Exception Type:crash异常类型

Exception Codes:crash异常错误码

Exception Note:crash异常附加信息

Triggered by Thread:异常产生的线程。

Last Exception Backtrace:最后的异常回溯

然并卵,有了这些信息还是看不懂啊!难道是打开方式不对?

二、开始分析

我们可以用Xcode自带的symbolicatecrash工具分析.crash文件

1、找到Xcode自带的symbolicatecrash工具路径:

/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash


2、找到苹果公司反馈的crash日志文件(我这里只有一个链接,我直接把链接里面的crash日志内容保存成了一个.crash文件“XX.crash”)

3、找到崩溃app对应的dSYM文件。(别人直接发了崩溃app的xcarchive文件给我,.dSYM文件就在xcarchive文件的dSYMs文件夹下的“XX.app.dSYM”)

4、在终端执行以下命令:

symbolicatecrash路径 XX.crash(苹果公司给的crash日志文件路径) XX.app.dSYM(崩溃app对应的dSYM文件路径) > 输出文件路径


如果在执行命令的过程中会出现错误信息:“Error: “DEVELOPER_DIR” is not defined at /Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash line 69.”

解决方案:

在终端执行
export DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer


执行完成后,再执行第4步。

第4步执行具体过程如下图所示:



三、分析结果

经过以上4步之后,我们可以在打开桌面上生成的crash文件(我的输出路径是”~/desktop/exam.crash”)。



这样是不是思路就清晰了很多?接下来定位bug就看你的了!

本文内容中部分参考网络资料,后续会不断更新完善。欢迎一起学习交流!

四、参考文章地址:

Understanding and Analyzing Application Crash Reports

iphone崩溃日志分析工具symbolicatecrash用法
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ios app store crash debug xcode