iOS学习笔记58-iOS- 全方位解析.crash文件崩溃报告
2016-02-24 10:49
387 查看
1、前言 想来每个iOS攻城狮,都免不了要接触.crash文件那么什么是.crash文件?iOS app的所有崩溃记录都会记录在设备上,所以对于和我一样没有集成让用户发送崩溃报告功能的iOS开发者来说,要获得crash文件就必须先连上崩溃过的机器,然后从崩溃过的机器上导出.crash文件 2.如何解析.crash文件我们先看一眼导出来的.crash文件,重点看下崩溃部分的记录如下图显然从这图里,我们没法定位出具体的错误,和崩溃的具体行数。我们得到是个二进制的报告,这时候我们需要对它进行反编译。对.crash文件进行反编译我们需要用到三个文件,缺一不可 2.1.找到发布app时的.ipa文件(就是你打包app上传到商店里的那个文件)2.2.找到Archive时生成的.dSYM文件Show in Finder后对文件夹中的这个.xcarchive文件右键,显示包内容,就可以看到一个名为dSYMs的文件夹,把里面的.dSYM文件拷出来 2.3.将.ipa、.crash、.dSYMs 文件放在同一个文件夹(例如:创建一个bugcrash文件夹)2.4.打开你的xcode,然后打开你发布时的代码(记住必须保证是你发布时的代码,如果不是的话,可能会出现指向的崩溃行数有误,或者无法解析出来的问题)3.利用xcode自带re-symbolicate解析崩溃报告点击Devices进去 然后点击View Device Logs 进去 现在打开bugcrash文件夹,然后把.crash文件拖入右框中然后选中右键re-symbolicate log进行解析大约1-10秒中之后,我们就能发现之前的二进制数变成了我们想要看到的具体行数和具体的.crash原因. 4.如果xocde自带的Re-symbolicate仍无法解析,那么我们需要利用symbolicatecrash借助命令行手动解析symbolicatecrash是一个隐藏工具,它在我的Mac中的具体路径如下(Xcode6.1.app请换成你的Xcode名称)/Applications/Xcode6.1.app/Contents/SharedFrameworks/DTDeviceKitBase.framework/Versions/A/Resources/symbolicatecrash把这个路径拷贝一下,然后粘到Finder的“前往文件夹”下,前往,就可以看到symbolicatecrash工具了,现在把它也拷到桌面的crash文件夹里。至此,crash文件夹里现在有4个文件了,分别是.app,.crash, .dSYM, symbolicatecrash。接下来就是用终端敲命令,生成更易分析的crash。 ./symbolicatecrash /Users/xxxx/Desktop/bugcrash/InOrder.crash /Users/xxxx/Desktop/bugcrash/InOrder.app.dSYM > Control_symbol.crash 上述命令中,"xxxx"和"InOrder"请自行替换成对应的名称。运行,这时候终端可能会报错Error: "DEVELOPER_DIR" is not defined at /usr/local/bin/symbolicatecrash line 53. 这时候在终端中再输入如下(Xcode6.1.app依然是要替换成实际名称)然后再跑一下刚刚的那个命令,这时候看一下桌面的crash文件夹下就会多出一个名为“Control_symbol.crash”的文件,我们打开看一下。和刚刚一样。 |
相关文章推荐
- Cocoapods安装
- 极光推送iOS
- Masonry介绍与使用实践:快速上手Autolayout
- IOS 获取deviceToken
- IOS开发效率之为Xcode添加常用的代码片段
- iOS 蓝牙随笔
- iOS 启动页的设置
- iOS核心动画之CALayer-layer的创建
- iOS让程序退出后台时继续运行10分钟
- iOS 9 之后更改状态栏字体颜色
- iOS核心动画之CALayer(1)
- iOS开发——遍历目录,获取文件名列表
- iOS绘图教程
- iOS/OS X 内存管理(二):借助工具解决内存问题
- iOS/OS X内存管理(一):基本概念与原理
- 四种数据持久化iOS
- iOS中对于navigationBar隐藏的一些设置
- iOS 游戏赚钱真经
- iOS小明开发笔记(三十) (应用性能调优的建议和技巧)
- iOS小明开发笔记(二十九) (设计模式MVC、单例、代理、KVO)