本文主要是介绍iOS之ips日志解析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、导出ips文件
手机连接Xcode查看和导出 Xcode -> Window -> Devices and Simulators -> View Device Logs
直接在手机上导出,设置-隐私-分析-分析数据-找出对应时间点的ips文件
二、导出dSYM
1、Xcode -> Window -> Organizer -> 找到对应的包,Show in Finder
显示包内容,最终找到相应的dSYM
2、如果没有找到相应的dSYM,可以在TARGET->Building Setting->Build Option下的设置是DWARF,改成DWARF with dSYM file,再次打包就会生成dSYM文件了
三、导出symbolicatecrash
/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash
四、解析日志
1、新建一个文件夹crashParsing;
2、将appname.dSYM和symbolicatecrash拷贝到该文件夹中;同时将appname.ips文件,后缀改为.crash也拷贝进来;
3、打开终端cd到该文件夹的路径下,执行命令:
①、配置环境变量DEVELOPER_DIR(如之前已经配置过可略过此步,此为临时配置):
export DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer
②、执行日志解析命令:
./symbolicatecrash /Users/Bing/Desktop/crashParsing/appName-2021-08-25-190559.crash /Users/Bing/Desktop/crashParsing/appName.app.dSYM > log.crash
执行完毕后会生成,log.crash的日志
4、日志比较
解析前:
解析后:
如上图所示,我们在解析之后看到了崩溃的原因,可变数组的插入问题,但是具体是哪个类哪行代码导致的还是不能清楚的看到,所以还需要进一步的解析;
5、利用命令行工具atos进行进一步的解析
①、用atos命令来符号化某个特定的模块加载地址(即图中所示的①所指的地址0x102738000):
xcrun atos --arch arm64 -o appName.app.dSYM/Contents/Resources/DWARF/appName -l 0x102738000
输入完这个命令后,会进入到一个待输入状态;
②、此时输入第6行的第②个地址(0x102f98d70)得到如下结果:
此为如上图所示第6行的解析结果,即崩溃的上一步调用的方法位置;
③、此时输入第5行的第②个地址(0x102f99084)得到如下结果:
最终就得到了导致APP崩溃的具体位置;
这篇关于iOS之ips日志解析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!