iOS使用symbolicatecrash解析crash

前言:在iOS开发中我们经常会有分析.crash文件的需求,这篇文章简单记录一下用symbolicatecrash分析.crash文件的过程

用一张图说明问题,就是拿到crash文件找到了出错位置确不知道对应的代码中什么位置

iOS使用symbolicatecrash解析crash_第1张图片
1.png

前期准备: 1.用解压软件打开你的IPA包,把Payload中的文件复制到crash文件同一目录下。2.将对应 .dSYM文件也复制到这个目录。(该文件一般在 /Users/name/Library/Developer/Xcode/DerivedData/MyApp-*******/Build/Products) 前提是你必须在打包或build的时候开启了选项
iOS使用symbolicatecrash解析crash_第2张图片
2.png
如果没有 .dSYM,恭喜你,你的解析工作已经提前结束啦

要想解析成功还有一个充要条件: .dSYM 文件.crash文件与你的项目包(Payload
下)三者UUID 必须能对应起来. 查看UUID命令

dwarfdump --uuid  Mydsym.app.dSYM 

.crash文件中的UUID在下面所示:

1123.png


** 开始解析:** 1.打开你的终端,输入以下命令回车:

export DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer

2.找到你的解析工具symbolicatecrash 所在位置,Xcode7.3.1/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash.
然后按照格式:symbolicatecrash .crash文件 .dSYM文件 >result.log 拼装命令,执行即可获得解析结果result.log
命令示例:

/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash /Download/log/test.crash youApp.dSYM >result.log

解析之后打开result.log你就会看到类似下图,代码中崩溃的位置已经可以看到啦

iOS使用symbolicatecrash解析crash_第3张图片
3.png


补充: 在本机查找.dsym文件可以用 mdfind "com_apple_xcode_dsym_uuids == E6EDBC19-62B2-3A56-8971-547213966DD5" 命令,替换相应的UUID即可~

EOF:有任何问题可以留言交流,方法很简单,但还是记录下预防自己健忘痴呆~

你可能感兴趣的:(iOS使用symbolicatecrash解析crash)