1.使用symbolicatecrash工具解析
步骤:
1.通过Xcode -> Window -> Organizer 获取打包的xcarchive 文件
2.查看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
得到路径之后,通过Finder -> 前往文件夹 -> copy出symbolicatecrashs文件复制到最开是创建的CrashLog文件夹中
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 模块加载地址 第二个地址
参考链接: