iOS symbolicatecrash工具crash日志分析

工作了就懒了,好久没写博客了。其实最近也解决了不少可以记录的问题,只是太懒了。。。以后慢慢补上吧。

今天记录一下iOS里面如何分析crash日志,因为在公司app打包给测试人员测试之后,经常会有crash,之前一直也没去管那种偶然的crash,最近项目快结束了,偶然的crash也得解决,昨天花了点时间算是把这个研究了一下。

1.crash分析需要准备的文件:

1>crash日志

2>dSYM文件

3>app文件

4>symbolicatecrash工具

 

2.iOScrash日志获取的方法:

1>如果是自己真机测试的时候出现crash的话,可以打开xcode->Window->Devices 点击你的设备,export出crash日志。

2>如果是需要测试人员收集的日志的话,可以通过iTools工具获取,也很简单。这种方法获取的是.ips文件,改成.crash就行了。

其余的获取方法我还没有使用过。。以后补上。

 

3.dSYM文件和app文件:(网上转)Xcode编译项目后,我们会看到一个同名的 dSYM 文件,dSYM 是保存 16 进制函数地址映射信息的中转文件,我们调试的 symbols 都会包含在这个文件中,并且每次编译项目的时候都会生成一个新的 dSYM 文件,位于 /Users/<用户名>/Library/Developer/Xcode/Archives 目录下,对于每一个发布版本我们都很有必要保存对应的 Archives 文件 ( AUTOMATICALLY SAVE THE DSYM FILES 这篇文章介绍了通过脚本每次编译后都自动保存 dSYM 文件)。

我开始没找到dSYM文件和app文件。。后来我发现只要在工程中,products文件夹右键Show In Finder就可以了。把这个两个文件复制保存到一个新建的文件夹在桌面或者比较方便的地方,crash log和symbolicatecrash也要一起放入这个文件夹。要注意的是dSYM文件每次发布一个版本都要复制出来,因为要和crash log一一对应。

4.symbolicatecrash工具:

symbolicatecrash查找: mac上在终端输入: find /Applications/Xcode.app -name symbolicatecrash 等一会就可以查找到,我的是/Applications/Xcode.app/Contents/SharedFrameworks/DTDeviceKitBase.framework/Versions/A/Resources/symbolicatecrash。

将symbolicatecrash工具也复制到上面文件存放的文件夹。

5.开始分析:

  打开终端cd进入存放上述文件的文件夹 ,输入命令:

  ./symbolicatecrash crashlog.crash MyCrash.app.dSYM > 20151209_01.crash

其中crashlog就是存入文件夹的crash log的名称,MyCrash是app名称,20151209_01是解析出来的可读的crash文件,会自动生成。

再输完上面的命令后可能会报错:“Error: "DEVELOPER_DIR" is not defined at ./symbolicatecrash line 53.”

如果出现错误,再输入:export DEVELOPER_DIR="/Applications/XCode.app/Contents/Developer"

接着再输入一次  ./symbolicatecrash crashlog.crash MyCrash.app.dSYM > 20151209_01.crash 这个命令应该就可以了。

 

6.分析完成后,生成的新的20151209_01.crash文件就是我们可以阅读的了。

好的,先介绍这些了,具体的步骤截图有时间再上。

 

posted @ 2015-12-09 20:11  ydatong  阅读(1697)  评论(3编辑  收藏  举报