iOS 使用symbolicatecrash分析crash文件
iOS 使用symbolicatecrash分析crash文件
首先,在桌面建一个文件夹crash,接着需要准备4个文件:
-
1、崩溃日志.crash:Xcode->Window->Devices,选中设备,点击View Device Logs,然后可以看到好多日志,你可以根据时间来判断需要导出哪个日志,选中一个crash日志,右击选择Export log,然后就可以导出日志为aaa.crash,复制到crash文件。(如果有其他xx.log文件,直接将后缀改成xx.crash即可)
-
2、xxx.app.dSYM文件:Xcode->Window->Organizer,打到之前的ipa文件,右击Show in Finder,可以看到XXX.xcarchive文件,右击显示包内容可以看到一个名字dSYMs的文件里面会有一个xxx.app.dSYM文件,复制到crash文件。
-
3、.app文件:找到导出的xxx.ipa文件,右击->打开方式->归档实用工具,然后看到一个名为Payload的文件,把里面的app文件复制到crash文件。
-
4、symbolicatecrash路径:
Xcode7.3 以前
symbolicatecrash路径
/Applications/Xcode.app/Contents/SharedFrameworks/DTDeviceKitBase.framework/Versions/A/Resources/symbolicatecrash
或者 在应用程序里找到Xcode->显示包内容可以找到Contents文件,把symbolicatecrash复制到crash文件。
Xcode7.3
symbolicatecrash路径
/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash
更新Xcode版本可能会出错:
can't find tool named 'otool' in the macosx SDK or any fallback SDKs at /Users/xxx/Desktop/crash/symbolicatecrash line 121.
解决方法是:在终端运行如下命令,找到symbolicatecrash这个的新路径
find /Applications/Xcode.app -name symbolicatecrash -type f
然后,打开终端,到crash文件目录下cd crash文件路径(可以直接把文件拖到终端,就可以看到crash的路径)
接着输入./symbolicatecrash /Users/本机用户名/Desktop/crash/aaa.crash / Users/本机用户名/Desktop/crash/xxx.app.dSYM > new_symbol.cash,其中本机用户名和文件名称自己替换
-
1 ./symbolicatecrash 这个也可以直接把symbolicatecrash这个工具直接拖到终端来查看路径
-
2 /Users/haoshiqi/Desktop/crash/haoshiqi.crash这个是aaa.crash(以本例为例) 的文件路径,直接拖到终端就可能看到文件路径
-
3 / Users/haoshiqi/Desktop/crash/Haoshiqi.app.dSYM这个是xxx.app.dSYM(以本例为例),同样拖到终端就可以看到文件路径
-
[x] 运行完上面这句可能会出现以下问题:Error: "DEVELOPER_DIR" is not defined at ./symbolicatecrash line 60.
-
[x] 解决方法是输入以下命令:(xcode-select --print-path 可以找到DEVELOPER_DIR)
export DEVELOPER_DIR="/Applications/Xcode.app/Contents/Developer" -
[x] 再接着输入./symbolicatecrash /Users/本机用户名/Desktop/crash/aaa.crash / Users/本机用户名/Desktop/crash/xxx.app.dSYM > new_symbol.crash
-
[x] 最后在aaa.crash文件中就多了个new_symbol.crash文件,这个就是解析后的crash文件