iOS崩溃 .Crash文件分析记录

2016/04/07 iOS

.crash文件分析相关的路径和命令行操作记录。

.crash

iTunes同步完成后,.crash文件路径:

~/Library/Logs/CrashReporter/MobileDevice

dSYM

每一个打包版本都有个对应的 Archives 文件,路径为:

 /Users/<用户名>/Library/Developer/Xcode/Archives

文件名为打包对应的日期,.xcarchive显示包内容,dSYMs文件夹下的 AppName.app.dSYM文件。

Symbolicatecrash

Symbolicatecrash的文件路径:

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

Xcode不同版本间Symbolicatecrash的位置可能会有差异,如DVTFoundation.framework部分文件名不一样。

若找不到可以通过命令来查找:

find /Applications/Xcode.app -name symbolicatecrash -type f

UUID校验

确保文件之间彼此正确对应。Ps. HDPRO改为对应的AppName即可。

.crash

grep "HDPRO arm" *.crash

输出结果:

0x100054000 - 0x1008e3fff HDPRO arm64  <f960888bef2430e9b844732364819642> /var/containers/Bundle/Application/84FA640D-AC63-4848-9989-9C5D8FCA748A/HDPRO.app/HDPRO

dSYM

dwarfdump --uuid HDPRO.app.dSYM/Contents/Resources/DWARF/HDPRO

输出结果:

UUID: 271C3816-D14F-3FFE-93FA-D0A8F2912DF0 (armv7) HDPRO.app.dSYM/Contents/Resources/DWARF/HDPRO
UUID: F960888B-EF24-30E9-B844-732364819642 (arm64) HDPRO.app.dSYM/Contents/Resources/DWARF/HDPRO

.app

应用Archive生成的.ipa,将后缀改为.zip,解压生成Payload文件夹,里面有个与App同名文件,此时用命令行:

dwarfdump --uuid Payload/HDPRO.app/HDPRO

输出结果:

UUID: 271C3816-D14F-3FFE-93FA-D0A8F2912DF0 (armv7) Payload/HDPRO.app/HDPRO
UUID: F960888B-EF24-30E9-B844-732364819642 (arm64) Payload/HDPRO.app/HDPRO

对比UUID即可。

操作过程

将Symbolicatecrash、dSYM文件、.crash文件放在同一个文件夹内,命令行cd到这个文件夹中。

先运行:

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

否则会报错:

Error: "DEVELOPER_DIR" is not defined at ./symbolicatecrash line 60.

输入命令:

./symbolicatecrash HDPRO-2016-06-14-133332.crash HDPRO.app.dSYM > a.log

则最终生成的a.log文件即为崩溃时的具体信息。

— end —

想留言却没看到评论框?点这里。

Post Directory