在开发过程当中每每会碰见有个别用户或者测试人员反馈app的闪退现象,而项目通常集成的统计闪退的第三方库是笼统的统计了全部的闪退信息,没法去定位某一个用户提出的某一个时间点的某一个闪退问题,因而乎这个时候须要咱们能快速的去获取指定用户提出的指定闪退,并可以解析闪退日志,快速的定位到问题。下面将本身的作法大概的作个总结(可能还有别的方法,可是我以为下面讲述的方法已经足够了)。html
1、收集闪退日志xcode
先和用户肯定iPhone是否打开以下设置(以iOS12.0的iPhone为参考):app
设置->隐私->分析->共享iPhone分析->与应用开发者共享工具
只有打开了上述设置闪退日志才会被收集,而后进入设置->隐私->分析->分析数据,找到以本身项目开头拼接出现闪退大体时间点文件名的ips文件。测试
2、解析闪退日志spa
1.若是还能找到用户反馈有问题的app 当时打包时相对应的项目源码,那么就很简单了3d
获取到的.ips文件双击打开是没有解析的日志,如今须要修改后缀名为.crash,而后双击打开出现下面的弹窗日志
能够选中当时打包的项目,预览而且打开,这时候你会发现打开后的项目会显示闪退的地方。code
没错,就是这么简单。不过前提条件是你还有当时打包的项目源码,否则要是用改动过当前闪退所在文件的源码,定位的位置是不对的。htm
2.不能找到打包时的项目源码,可是能够找到当时打包的dSYM文件
具体步骤:
1.首先在桌面新建一个文件夹crashFile,用于存放解析闪退日志用到的文件。
2.找到前面获取到的.ips文件,拷贝.ips文件放到crashFile中
3.获取symbolicatecrash文件。
找到当时打包所用的xcode(可能笔记本安装了好几个Xcode),而后进入下面的路径:/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash
拷贝symbolicatecrash工具拷贝到crashFile中
4.获取dSYM文件
从当时打包的xcode->Window->Organizer->Archives找到当时的xcarchive文件,选中xcarchive文件右键点击【显示包内容】,拷贝dSYMs文件下的.dSYM文件,放到crashFile中。
至此,crashFile文件中总共有3个文件:.ips文件、symbolicatecrash工具、.dSYM文件。
5. 打开终端,cd到crashFile文件夹中
6. 输入命令
./symbolicatecrash Agent-2020-02-21-124913.ips Agent.app.dSYM > crash.log
这时候会发现crashFile文件夹下多了个crash.log文件
双击打开crash.log文件,你会发现崩溃信息已经成功解析
好了,大功告成!!!
下面将附上参考的地址(能够验证闪退的ips文件和dsym文件对应的app是不是同一个):
https://www.cnblogs.com/mukekeheart/p/9449189.html
https://hacpai.com/article/1533042075262
https://www.jianshu.com/p/e5ad706e4196