iOS解析Crash日志的二种方式

1.使用symbolicatecrash工具解析

步骤:

1.通过Xcode -> Window -> Organizer 获取打包的xcarchive 文件

2.查看xcarchive包内容,如下图:


iOS解析Crash日志的二种方式_第1张图片
xcarchive文件包扩的内容

3.dSYMs 文件夹中包含所有项目有关的dSYMs文件,copy 出项目主要代码的dSYMs文件,在Desktop新建一个CrashLog文件夹

4.打开终端通过命令行进入到新建的CrashLog文件夹下,执行如下命令:

dwarfdump --uuid 项目名称.dSYM ,来查看Crash包的uuid


命令

5.拿到Crash包的uuid,如果拿到的是ipa的包,先用直接使⽤归档工具进行归档,当然也可以使⽤用先压缩微.zip -> 解压 ->右键查看包内容的形式。通过终端进入当前文件夹下执行如下命令:

dwarfdump --uuid 项目名称.app/项目名称

命令

6.对比Archivie打的包和获取到的Crash包的uuid 是否一致,如果不一致,则没必要进行之后的操作。

备注:关于Jenkins打包,它会把以前的build⽂件覆盖掉,结果以前的dSYM文件和ipa包没法获取(转自大佬的)。如果是⾃己手动打包archive后,Xcode自⼰己会保存⼀一个当前打包完的记录,这样每次都能拿到dYSM⽂文件和ipa⽂文件。


7.使用Xcode工具symbolicatecrashs,首先通过终端命令查找路径命令如下:

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


将路径copy

得到路径之后,通过Finder -> 前往文件夹 ->  copy出symbolicatecrashs文件复制到最开是创建的CrashLog文件夹中

iOS解析Crash日志的二种方式_第2张图片
symbolicatecrashs文件的位置

8.通过终端回到CrashLog文件下执行如下命令:

./symbolicatecrash ./*.txt ./项目名称.app.dSYM/Contents/Resources/DWARF/项目名称 > crashLog.crash

9.如果出现如下提示:

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

则代表没有配置环境变量,在终端输入:


配置环境变量

备注:此操作只在当前终端生效,如果想要一劳永逸,需要把环境变量配置到bash_profile中具体如何配置终端的环境变量请自行百度

参考链接:

Xcode工具symbolicatecrash解析iOS Crash文件

符号二进制崩溃问题

2.用atos命令来符号化某个特定模块加载地址

1.找到项目名称.dYSM 文件(项目名称为自己的应用的名称)

2.打开终端,执行命令如下:

xcrun atos -o 项目名称.app.dSYM/Contents/Resources/DWARF/appName -l 模块加载地址  第二个地址


iOS解析Crash日志的二种方式_第3张图片
log

参考链接:

命令行工具atos解析iOS app的崩溃日志(bugly)

分析iOS Crash文件:符号化iOS Crash文件的3种方法

你可能感兴趣的:(iOS解析Crash日志的二种方式)