解析iOS崩溃日志

背景:iOS APP崩溃后,会生成一个崩溃日志xxx.crash。但是crash日志里都是一些地址信息,可读性很低。如下图:

解析iOS崩溃日志_第1张图片

在这种情况下,我们需要把地址信息解析成对应的代码。

方法一:使用Xcode自动解析

前提:

1. 能够拿到当时打包的Mac设备(如Mac Mini)

2. 有一个iOS手持设备(如iPhone6)

步骤:

1. 将手持设备连接到Mac设备上,打开Xcode,Window->Devices,选中刚才连接的设备,点击“View Device Logs”。如下图:

解析iOS崩溃日志_第2张图片

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改为真实文件的名字。


你可能感兴趣的:(解析iOS崩溃日志)