iOS中ips文件解析

iOS中ips文件解析,第1张

周末一个朋友找我李陵察说他们app验收时候闪退,开发离职了,让我帮忙看看改下。作为红领巾愉快接受,然后得知他们项目只有测试环境后台有数据,而我们相隔北京->南京的距离。。连不了测试环境,没有集成crash手机SDK,他们本地也没有Mac,也无法远程协助debug。无奈只能通过崩溃日志尝试分析。

对于一个iOS设备来说,如果设备上的某款APP发生carsh,那么是能够在手机内查找到carsh信息的,文件名格式就是APP包名+时间的ips文件,于是曲线救国找他们测试妹子获取了ips文件。

.ips文件、.app.dSYM文件、symbolicatecrash文件。

1、在桌面新建carsh文件夹,用于存放所需文件,与导出文件

2、将.ips文件更名为.crash文件并放到crash文件夹中

3、打开Xcode->window->Organizer,找到对应版本的archives,右键Show in Finder,选中xcarchive文件右键显示包内容,拷贝出dSYMs文件夹下的dSYM文件,用于后面解析

4、找到symbolicatecrash 路径,用命令将symbolicatecrash拷贝到桌面的crash文件夹里面,与.dSYM放一起(手动找到symbolicatecrash,拷贝出来也行)

5、执行symbolicatecrash,生成符号化后的crash文件

这时候终端有哪茄可能会出现:

输入命令:

再执行,这时候终端将会进汪团行处理了

将终端完成以后,在crash文件夹里面会多出一个文件Control_symbol.crash:这个就是最终的文件,可以查看bug所在的位置。

然后就清楚看到调用的方法,最后崩溃发生在 EGOGradientView ,调用hidden,剩下就是根据后台数据排查问题了。

平时在ios开发过程中不管是开发人员还是测试人员,都会遇到APP崩溃的情况,这个时候就要求开发者集成一些像bugly一样的工具,但是没有集成bug解析工具的是怎么去定位crash的具体位置的呢?像对于一个ios设备来说,如果设备上的某款APP发生crash,那么是能够在手机内查找到crash信息的,方法就是设置->隐私->分析->分析数据;文件名格式就是APP包名+时间的ips文件,一眼就能定位出哪一个APP什么时间发生的crash,接下来导出你关注的ips文件。

在桌面新建crash文件夹,该文件夹需要导入四样东西;

第一个 :从设备导出的ips文件,需要改后缀名为crash

第二个 :找到

/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash 路径,把symbolicatecrash拷贝到crash文件夹中

第三个 :打开Xcode->window->Organizer,找到对应版本的archives,右键Show in Finder,选中xcarchive文件右键显示包内容,拷贝出dSYMs文件夹下的dSYM文件

第四个 :打开Xcode->window->Organizer,找到对应版本的升者毕archives,右键Show in Finder,选中xcarchive文件右键显示包内容,拷贝出Products->Applications文件夹下的APP文件

此时crash文件夹下文件:

然后打开终端,cd到crash文件夹下执行以下命令:

./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的命令,此时crash文件夹内应该就能看到一个log.crash文件,打开此文件,就能更好的定位问题所在了。

因为解析前的ips文件是十六进制的堆栈信息,所以我们需要对这些数据进行符号化转换,将堆栈地址转化为我们可识别的一些类名、方法名等符号信息。

放吵芹上两张解析前后的图对比一下:

解析前:

解析后:


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12293533.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存