iOS Crash log获取和解析

发布时间:2019-08-06 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了iOS Crash log获取和解析脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

Crash LOG获取

Step 1:
安装iExplore的Mac版本,并在iExplore中按提示安装FUSE插件,下载地址(破解版本):
http://ifunapple.com/2013/10/...
Step 2:
将iOS的文件系统mount成mac本地磁盘
连接iOS设备 至Mac,打开iExplore,在左侧的文件加列表中选择需要mount为磁盘的文件夹,右键选择Mount as disk(左图),例如,我们将手机QQ安装目录mount为一个本地磁盘,然后我们就能在finder中发现多了一个com.tencent.mqq 的磁盘(右图)。

iOS Crash log获取和解析


iOS Crash log获取和解析

这也就意味着你可以在命令行或是python代码中来操作iOS设备上的文件了

iOS Crash log获取和解析

这里有几点需要注意:

  1. 不要直接mount根目录,否则mount后的磁盘是只读的
  2. 首先mount Root文件夹,再mount Apps中具体的一个应用文件夹,不要直接mount Apps目录,否则该mount的磁盘也是只读的
  3. 当手机上相应目录文件发生变化后,mount的disk不会自动刷新,即执行ls命令看不出新增的文件,解决方法是可以在该目录touch一个文件,就能触发刷新操作,当然别忘了删除你touch的临时文件

Step 3:
实现python代码来完成文件传输,例如拉取crashlog到mac上的示例代码为:

iOS Crash log获取和解析

Crash Log解析

解决方案

如果出现了只有地址的情况,只要.app.dSYM文件还在的话,symbolicatecrash工具就可以把对应的函数名解析出来。
其实这里关系到编译后的两个文件:MyApp.app以及MyApp.app.dSYM,如果崩溃的程序正好是这台Mac编译出来的话,并且对应的同时编译出来的appdSYM文件还在build目录下的话(即还没编译过其他更新的版本),orgnizer会把crash文件的函数名解析出来,如果没了的话,就是光秃秃的地址了,这个时候即使拿同样的代码再次编译,也不能解析出代码信息来了,所以发布的版本一定要保留.app.dSYM文件。
因此,当我们需要解析这些函数地址的时候,可以先找开发同学要这个版本的.app.dSYM文件,我们也称作符号表。

具体使用symbolicatecrash工具和.app及.dSYM文件,解析函数名的方法如下:

  1. 新建一个专门的目录进行解析处理,如: /crash
  2. 把symbolicatecrash工具从原来的位置拷贝到/crash。

xcode 4.3以上版本的symbolicatecrash的位置和老版本的不一致了:
/Applications/Xcode.app/Contents/DeveloPEr/Platforms/iPhoneoS.platform/Developer/Library/PRivateFrameworks/DTDeviceKIT.framework/Versions/A/Resources/
Xcode 4.3之前:
/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources/symbolicatecrash

  1. 把对应的.app和.dSYM文件拷贝到/crash,再把需要解析的crash文件也拷贝到/crash
    关于这两个符号表文件我们可以找开发同学要,如果是自己在Xcode上编译出来的版本,也可以在build下找到。步骤Xcode -> Window -> Organizer -> Archives -> 右击给测试的包->“Show in Finder”->“显示包内容”->复制目录“Products/Applications/”下面的.app到symbolicatecrash同级目录下。
  2. 假设crash文件是MyApp_2013-xxx-iPhone.crash, .dSYM文件是MyApp.app.dSYM,然后把MyApp.app也和MyApp.app.dSYM文件放在一起,再使用如下命令进行解析:

$ ./symbolicatecrash MyApp_2013-xxx-iPhone.crash MyApp.app.dSYM > MyApp_symbol.crash

  1. 如果解析成功了,那么就会有函数名了(如下):

iOS Crash log获取和解析

脚本宝典总结

以上是脚本宝典为你收集整理的iOS Crash log获取和解析全部内容,希望文章能够帮你解决iOS Crash log获取和解析所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。