iOS崩溃排查
本文最后更新于:2 年前
一、记录崩溃日志
1、连接设备,直接通过Xcode
获取
在菜单栏找到
Devices and Simulators
,找到View Device Logs
,根据日期包名等信息即可以找到对应的闪退日志,稍等一段时间后,Xcode
会自动将日志符号化,此处日志导出后,会生成对应的.crash
格式的崩溃日志
2、设备中提取
iPhone
设置里面,依次找到隐私-分析-分析数据,此处会记录设备上所有的日志,同样找到相应的日志,点击后可以复制出来,但此处日志没有经过符号化,还需要再进行符号化才能看懂
3、代码中系统方法记录
1 |
|
在代码中使用系统提供的
API
记录日志后,再通过网络上传,这样就能统计到所有设备上的崩溃日志了
4、第三方库KSCrash
相比系统方法,有些第三方库的日志记录更为精确,例如KSCrash
二、.crash
符号化
1、dSYM
符号文件
dSYM
文件是指具有调试信息的目标文件,每次打包时Xcode
菜单栏中Organizer
下回生成Archives
记录,右键Show in Finder
可以找到对应的.xcarchive
文件,在该文件包内容中可以找到dSYMs
文件夹,里面包含dSYM
文件,如果没有,需要检查Xcode
相关的打包配置参数
2、 找到Xcode
的symbolicatecrash
脚本
在终端中输入命令
1 |
|
其中Xcode.app
的路径请以本机路径为准,一段时间后,即可以找到几个symbolicatecrash
脚本,拷贝其中一个脚本即可
3、校验uuid
查看dSYM
文件的uuid
1 |
|
查看app
的uuid
1 |
|
查看crash
文件的uuid
,在crash
文件中找到Binary Images
,其下面的第一行类似于下面代码,尖括号中的就是uuid
1 |
|
4、符号化
将symbolicatecrash
脚本、dSYM
文件、.app
、.crash
文件放在一起,要先确保三个文件为同一个app
打包产生的,使用如下命令行即可符号化
1 |
|
如果出现报错,则需要重置下环境变量
1 |
|
三、dSYMTools
github
有做成mac app
的工程,可以直接使用