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的工程,可以直接使用