iOS闪退日志收集与解析
2021-03-16 本文已影响0人
三少爷_贱
1、收集闪退日志
- 和用户确认iPhone是否打开了设置。
- 没有打开设置的用户 在
设置->隐私-分析-共享iPhone分析
和与应用开发者共享
打开开关。 - 然后进入
设置->隐私->分析->分析数据
,找到以自己项目开头拼接出现闪退大致时间点文件名的ips文件
2、解析闪退日志
a、如果还能找到用户反馈有问题的app 当时打包时相对应的项目源码,那么就很简单了;
获取到的.ips文件双击打开是没有解析的日志,现在需要修改后缀名为.crash,然后双击打开,在弹框中可以选中当时打包的项目,预览并且打开,这时候你会发现打开后的项目会显示闪退的地方。
b、不能找到打包时的项目源码,但是可以找到当时打包的dSYM文件
在桌面新建crashFile文件夹,该文件夹需要导入四样东西;
-
1.找到前面获取到的
.ips
文件,拷贝.ips
文件放到crashFile
中,并修改后缀名为.crash
。 -
2.找到路径
/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash
下的把symbolicatecrash放到crashFile
中
-
3.打开
Xcode
->window
->Organizer
,找到对应版本的archives
,右键Show in Finder
,选中xcarchive
文件右键显示包内容,拷贝出dSYMs
文件夹下的dSYM
文件到crashFile
中 -
4.打开
Xcode
->window
->Organizer
,找到对应版本的archives
,右键Show in Finder
,选中xcarchive
文件右键显示包内容,拷贝出Products
->Applications
文件夹下的.ipa
文件 - 打开终端,
cd
到crashFile
文件夹中
- 打开终端,
- 输入命令
./symbolicatecrash xxx.carsh xxx.dSYM > log.carsh
执行之后,终端可能报错Error: "DEVELOPER_DIR" is not defined at ./symbolicatecrash line 69.
继续执行以下命令:
export DEVELOPER_DIR="/Applications/Xcode.app/Contents/Developer"
然后,再继续执行声场log
的命令,此时crashFile
文件夹内应该就能看到一个log.crash
文件,打开此文件,就能更好的定位问题所在了。
因为解析前的.ips
文件是十六进制的堆栈信息,所以我们需要对这些数据进行符号化转换,将堆栈地址转化为我们可识别的一些类名、方法名等符号信息。