您的位置:首页 > 移动开发 > IOS开发

[iOS Crash文件分析]-如何使用symbolicatecrash工具

2015-02-10 15:49 483 查看
[iOS Crash文件分析]-如何使用symbolicatecrash工具  


转入地址:http://www.cocoachina.com/bbs/read.php?tid=180736

上传一软件,被拒了,自己测试了n遍都未出现这个情况,今天用symbolicatecrash工具分析了一下苹果提供的Crash文件,最终查到是

- (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation这里出问题,

在第一次进入更新位置的时候,userLocation.coordinate有时候会是0,0,这时候用setRegion就一定会Crash,

所以任何时刻请记得做非空处理, if (userLocation.location == nil)

下面建议如何用symbolicatecrash工具分析iOS Crash文件:

一、在桌面创建一个crash文件夹

1.Xcoe-Window-Organize找到Archives找到App-右击-Show in Finder


 

2.复制.app和.app.dSYM到crash夹文件:右击..xcarchive文件-显示包内容

如图:


 




 

复制好以后如图:


 

二、首先找到symbolicatecrash工具存放的地址

1.打开终端输入以下命令:

find /Applications/Xcode.app -name symbolicatecrash -type f

你会找到:

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKitBase.framework/Versions/A/Resources/./symbolicatecrash

2.用命令将symbolicatecrash拷贝到桌面的crash文件夹里面,与.app和.app.dSYM放一起

cp /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKitBase.framework/Versions/A/Resources/symbolicatecrash /Users/angel/Desktop/crash

如图:


 

3.将Crash文件也拷到当前文件夹里面

如图:


 

三、执行symbolicatecrash

1.打开终端用命令切换到桌面的crash目录下:

cd /Users/你的电脑名称/Desktop/crash

2.执行命令

./symbolicatecrash /Users/angelseahappiness/Desktop/crash/Control_2014-01-13-111838_Lynns-iPad3.crash /Users/angel/Desktop/crash/Control.app.dSYM > Control_symbol.crash

这时候终端有可能会出现:Error: "DEVELOPER_DIR" is not defined at ./symbolicatecrash line 60.

3.输入命令:export DEVELOPER_DIR="/Applications/XCode.app/Contents/Developer" 

4.再执行./symbolicatecrash /Users/angelseahappiness/Desktop/crash/Control_2014-01-13-111838_Lynns-iPad3.crash /Users/angel/Desktop/crash/Control.app.dSYM > Control_symbol.crash

这时候终端将会进行处理了

5.将终端完成以后,在crash文件夹里面会多出一个文件Control_symbol.crash:这个就是最终的文件,可以查看bug所在的

如图:



ios上利用通过查看crash文件调试程序

转入地址:http://blog.sina.com.cn/s/blog_5d2698930100xt8d.html

1.首先将iphone同电脑链接,然后选择organizer中的device,选择链接的手机,选择deviceLogs选项,里面存放着所有应用程序的crash信息。将这些信息导出手机到一个特定目录:/tmp

2.然后需要找到symbolicatecrash命令,一般这个命令会放在/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources/这个目录下,如果没有的话,需要在系统中找到该命令,一般只要正确的安装XCode的话,都可以找到这个命令
3.最好可以将该命令拷贝到系统目录,这样可以方便使用,例如:
cp /Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources/symbolicatecrash/bin
4.需要找到该程序对应的dSYM文件,该文件一般存放在工程文件下的/build/Debug-iphoneos下面。如果不在该文件夹下面的话可以搜索后缀是dSYM的文件,最后将该文件也拷贝到/temp文件夹里面
5.在tmp文件夹下执行symbolicatecrash XXX.crash XXXXX.app.dSYM>report.txt命令,如果没有问题的话在/tmp文件夹下面就会出现report.txt文件,里面就是可读的调试信息,可以一定程度上帮助我们进行调试。

最后需要注意的是,产生dSYM文件一定要和产生crash文件的程序一一对应。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: