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文件是十六进制的堆栈信息,所以我们需要对这些数据进行符号化转换,将堆栈地址转化为我们可识别的一些类名、方法名等符号信息。