背景:iOS APP崩溃后,会生成一个崩溃日志xxx.crash。但是crash日志里都是一些地址信息,可读性很低。如下图:
在这种情况下,我们需要把地址信息解析成对应的代码。
方法一:使用Xcode自动解析
前提:
1. 能够拿到当时打包的Mac设备(如Mac Mini)
2. 有一个iOS手持设备(如iPhone6)
步骤:
1. 将手持设备连接到Mac设备上,打开Xcode,Window->Devices,选中刚才连接的设备,点击“View Device Logs”。如下图:
2. 在左侧选中崩溃日志,点右键,选“Re-Symbolicate Log”。这时右边的日志内容已经发生了改变。如下图:
注:如果当前手持设备不是发生闪退的设备,可以将拿到的奔溃日志拖入上图的左侧,日志会被自动导入。再执行第2步。
方法二:使用symbolicatecrash手动解析
前提:
1. 拿到当时打包的xx.xcarchive文件
2. 在桌面上常见一个名为crash的文件夹。(仅是方便供后文使用)
步骤:
1. 找到symbolicatecrash程序。打开命令行(Terminal)程序,执行如下命令,会得到一个路径。
find /Applications/Xcode-beta.app -name symbolicatecrash -type f
执行之后,会得到一个路径。类似于下图:
在该路径下,将symbolicatecrash复制到桌面上的crash文件夹。
注:把命令中的“Xcode-beta”改为你的Xcode的名字。
2. 在xx.xcarchive文件中,找到xx.app文件。
选中xx.xcarchive文件,右键,Show Package Content,进入Products->Applications,将xx.app文件复制到桌面上的crash文件夹。
3. 在xx.xcarchive文件中,找到xx.app.dSYM文件。
选中xx.xcarchive文件,右键,Show Package Content,进入Products->dSYMs,将xx.app.dSYM文件复制到桌面上的crash文件夹。
4. 添加DEVELOPER_DIR环境变量。在命令行(Terminal)程序中执行如下命令。
export DEVELOPER_DIR="/Applications/Xcode-beta.app/Contents/Developer"注:把命令中的“Xcode-beta”改为你的Xcode的名字。
5. 解析日志文件
将崩溃日志复制到桌面上的crash文件夹。在命令行(Terminal)程序中,cd到crash文件夹。
执行如下命令:
./symbolicatecrash xx.crash xx.app.dSYM > symbolicated.txt
执行之后,在crash文件夹下,会生成一个symbolicated.txt文件。它就是解析之后的日志。
注:把xx.crash改为崩溃日志的名字,将xx.app.dSYM改为真实文件的名字。