准备工作
桌面新建 Crash 文件夹
crash Log 的获取
如果是开发模式,直接在真机上就能获取。
Xcode -> Window -> Devices and Simulators -> Devices -> ‘你的真机’ -> View Device Logs
然后可以在其中可以看见所有该手机的相关 log ,其中就有所有应用的 Crash Log 找到对应应用的 Log ,在右边可以查看详情。

如果是已经发布的应用
建设中...
但是如果应用不是本机打包的话,是看不到这些内容的,这个窗口里显示的是一大堆内存地址,如下

上图是支付宝的一次 Crash Log ,我们不是他的开发者,无法分析这个日志,此时就需要相应的 dSYM 文件。
我们先将内容复制出来到一个 .txt 文件,然后将后缀名改为 .crash,然后将文件放到桌面的 Crash 文件夹中。
dSYM 文件的获取
当我们使用Xcode打包时,应用中的文件名、方法名、行号等信息与可执行文件的地址是对应的,有了这个文件,我们就能将看不懂的内存地址还原成项目中的文件、方法信息,从而定位到 Crash 产生的原因。这个文件的位置如图所示:



复制该文件到桌面 Crash 文件夹中。一般来讲为了更好的分析Crash,每次发布版本后都应该备份该文件。
此处需要注意,选择的 Crash Log 和 dSYM 文件需要是同一次构建生成的才行,不然是无法匹配的。比如你可能在不同的构建版本中修改了方法名或者加入了新的代码,行号也会发生变化,生成的 dSYM 文件也会不一样。
校验方法
建设中...
symbolicatecrash 的获取
symbolicatecrash 是 Xcode 自带的一个工具,当应用就是本机打包的生成时候,它会自己调用这个工具进行分析,就是上面我们看见的已经分析好的结果。现在呢,我们需要由指定 dSYM 文件来分析指定的 Crash Log。
symbolicatecrash 所在的路径如下:(我的环境是 Xcode11.3 ,要是你找不到就问百度吧)
/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash
在 Finder 中使用快捷键 Command + Shift + G 快速查找到它。
复制该文件到桌面的 Crash 文件夹中。
分析
现在你的文件夹应该是下图这样的:

1.打开终端执行命令,进入 Crash 文件夹
cd /crash文件的目录
2.使用命令开始分析,*是你文件的名称
./symbolicatecrash ./*.crash ./*.app.dSYM > symbol.crash
如果你足够不幸运的话你会发现报错了,如下:
Error: "DEVELOPER_DIR" is not defined at ./symbolicatecrash line 69.
这是因为没有配置环境变量,输入下面的命令:
export DEVELOPER_DIR="/Applications/XCode.app/Contents/Developer"
然后再次执行行步骤2,稍等片刻,文件夹中就会出现分析好的文件symbol.crash。
你可以直接以文本编辑的方式打开:

也可以双击打开,在弹框中选择对应的应用,不知道是不是因为本机就是打包的电脑(有知道的小伙伴可以告诉我),它十分智能的跳转到了 crash 的位置,如图:

你可以看到 Crash 的方法和在记事本中看见的是同一个[QRMyCodeVC lcTestClick:]。
后记
萌新一个,有什么错误或者对本文有任何意见和建议可以友善评论啊,看见都会回复的,喜欢的可以点个赞哈!
谢谢您!