iOS中ips文件解析

背景

周末一个朋友找我说他们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,拷贝出来也行)

find /Applications/Xcode.app -name symbolicatecrash -type f
 cp /Users/monky/Downloads/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash /Users/monky/Desktop/crash 

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

./symbolicatecrash /Users/monky/Desktop/crash/sWhico-2020-01-17-141318.crash /Users/monky/Library/Developer/Xcode/Archives/2020-01-17/sWhico\ 2020-1-17\,\ 10.50\ AM.xcarchive/dSYMs/sWhico.app.dSYM >Control_symbol.crash

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

Error: "DEVELOPER_DIR" is not defined at ./symbolicatecrash line 69.

输入命令:

export DEVELOPER_DIR="/Applications/XCode.app/Contents/Developer"

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

解析前:
豆芽图片20200119152700832.png

解析后:
豆芽图片20200119152635912.png

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容