一、相关文件获取

1、carsh 文件

首先是获取到 carsh 日志文件,但是获取到之后是没有符号表的,所以看不出是什么东西。可以用 pc 或者 mac 获取到日志文件。

2、dSYM 文件获取

获取到 dSYM 以解析出到底崩在哪一行,Xcode –> Window –> Organize 中找到自己上传 appStore 中的包,右键 –> Show in Finder –> 显示包内容 –> 将 dSYM 文件 copy 出来。

3、symbolicatecrash 工具

在 Xcode 中自带有 symbolicatecrash 工具,用来解析 crash 文件,路径为:

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

二、还原日志

上述三个文件放在同一文件夹中,名字要一致。

方法 a

终端输入:

1
2
3
/Users/admin/Desktop/myappcrash/symbolicatecrash
/Users/admin/Desktop/myappcrash/MyAppName.crash
/Users/admin/Desktop/myappcrash/MyAppName.app.dSYM > MyAppCrash.log

方法 b

cd 命令进入此文件夹中

1
cd /Users/admin/Desktop/myappcrash

然后输入:

1
./symbolicatecrash ./MyAppName.crash ./MyAppName.app.dSYM > MyAppCrash.log

参考:解析苹果审核反馈崩溃日志 .txt / .crash 文件

错误 1

出现有 line 69 的错误,需要设置环境变量:

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

错误 2

出现 line 121 错误,如

1
Error: can't find tool named 'otool' in the macosx SDK or any fallback SDKs at ./symbolicatecrash line 121.

则需要确定一下是否拿到了正确的 symbolicatecrash 文件。利用以下代码在终端中可以拿到正确的 symbolicatecrash 文件路径。

1
find /Applications/Xcode.app/ -name symbolicatecrash

symbolicatecrash 路径. png

比如我在路径 A 和 Current 都各有一个 symbolicatecrash,拿到正确的就不会报错了。

参考:symbolicatecrash failed

三、解析日志

参考:iOS 应用崩溃日志分析