ios crash 日志分析

原创 2015年07月08日 10:11:44

一· 首先找到日志分析工具Symbolicatecrash ,是Xcode自带的一个分析工具。一般情况下改文件是隐藏文件,所以首先要显示出该文件:

  终端中输入以下命令

  显示Mac隐藏文件的命令:defaults write com.apple.finder AppleShowAllFiles -bool true

隐藏Mac隐藏文件的命令:defaults write com.apple.finder AppleShowAllFiles -bool false

输入完回车,重启Finder:左上角的苹果标志-->强制退出-->Finder-->重新启动

二· 找到该分析工具文件的具体位置

 命令行运行 /usr/bin/xcode-select -print-path

如果输出"/Developer"或者其他非"/Applications/Xcode.app/Contents/Developer/"的内容,运行下面的命令:
sudo /usr/bin/xcode-select -switch /Applications/Xcode.app/Contents/Developer/

查找symbolicatecrash地址,输入命令:find /Applications/Xcode.app -name symbolicatecrash -type f
获取路径,我的是 Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versi ons/A/Resources/symbolicatecrash

在执行symbolicatecrash之前先切换到他的目录下:
cd  Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources/
三· 

1.导出crash log

通过Xcode的Organizer查看某台iphone设备的DeviceLog,选择需要的crash log,导出XXX.crash文件。

(如果设备就在身边,可以连接设备,打开Xcode-Window-Organizer,在左侧面板中选择Device Logs   .如果应用程序已经提交到App Store发布,用户已经安装使用了,那么开发者可以通过iTunes Connect(Manage Your Applications - View Details - Crash Reports)获取用户的crash日志。不过这并不是100%有效的,而且大多数开发者并不依赖于此,因为这需要用户设备同意上传相关信息,详情可参见iOS: Providing Apple with diagnostics and usage information摘要。如果处于测试阶段,测试人员已经安装了不同的版本(比如alpha、beta版本),那么需要保存好对应版本的二进制文件和符号文件,以便在应用程序崩溃时对crash日志进行解析。对于这种场景下产生的crash日志,只需要将.crash文件、.app文件和.dSYM文件三者放在同一个目录下,然后将.crash文件拖放到Xcode - Window - Organizer中左侧面板Library下的Device Logs中,即可进行解析。

如果要提交发布,那么我们通常会先执行Clean,再Build,最后通过Product - Archive来打包。这样,Xcode会将二进制文件和符号文件归档在一起,可以通过Organizer中的Archives进行浏览。

这里是一份关于如何解析crash日志的讨论:http://stackoverflow.com/questions/1460892/symbolicating-iphone-app-crash-reports 。

2.找到对应的app文件

找到当前iphone设备上安装的ipa文件,更改文件后缀名为zip,解压后得到Payload文件夹,你需要的app文件就在其中了。

3.找到对应build版本的dSYM文件

dSYM文件是iOS编译后保存16进制函数地址映射信息的文件,每次应用程序build后,都会生成对应的xxx.app, xxx.app.dSYM文件。

4.确定dSYM、app以及crash文件的关系

每一个xx.app, xxx.app.dSYM文件都拥有相应的uuid,crash文件也有uuid,只有三者uuid一至才表明之三者可以解析出正确的日志文件。
查看xx.app文件的uuid的方法,在terminal中输入命令:

dwarfdump --uuid xxx.app/xxx (xxx工程名)

查看xx.app.dSYM文件的uuid的方法,在terminal中输入命令:

dwarfdump --uuid xxx.app.dSYM (xxx工程名)

而.crash的uuid位于,crash日志中的Binary Images:中的第一行尖括号内。如:

armv7 <8bdeaf1a0b233ac199728c2a0ebb4165>

将对应的xxx.app.dSYM文件以及xxx.app文件以及xxx.crash文件拷贝到同一文件夹中,如:~/Desktop/DebugLog。

四。

2)查找确认是否存在symbolicatecrash

ls -al | grep symbolicatecrash

3)将symbolicatecrash工具拷贝到/usr/bin目录下

sudo cp symbolicatecrash /usr/bin/symbolicatecrash

4)设置DEVELOPER_DIR系统变量

cd ~/

vi .bash_profile

并输入如下内容
export DEVELOPER_DIR="/Applications/Xcode.app/Contents/Developer"

保存并退出

source .bash_profile

5)重启终端,确认是否已正确设置DEVELOPER_DIR系统变量

echo $DEVELOPER_DIR

查看输出结果是否为/Applications/Xcode.app/Contents/Developer

6)查看PATH系统变量是否存在如下路径/usr/bin

echo $PATH

7)如果PATH不存在如下路径/usr/bin,可在~/.bash_profile中添加如下代码

export PATH="/usr/bin:$PATH"

保存并退出

source .bash_profile

8)上述准备工作完成后,进入dSYM和crash文件对应的文件夹目录,如

cd ~/Desktop/DebugLog

9)执行如下命令,即可正确解析crash文件

symbolicatecrash xxx.crash xxx.app.dSYM > test.txt


[iOS Crashr日志分析一] Crash日志分析 工具准备

//crash 报告解释 http://www.cnblogs.com/smileEvday/p/Crash1.htmlhttp://blog.csdn.net/ys410900345/articl...
  • iOSTianNan
  • iOSTianNan
  • 2016年08月29日 15:36
  • 1103

友盟 crash日志 内存地址分析

使用 友盟分析 获取到app 的崩溃信息 如下: 看上图 日志信息 只有相关的内存地址  解决办法: 先找到我们上传版本的DYSM,上传的DYSM在那呢? 1. X...
  • yu413854285
  • yu413854285
  • 2017年03月01日 13:02
  • 536

iOS app crash日志分析

原文链接:http://blog.csdn.net/openglnewbee/article/details/38824139 http://blog.csdn.net/hjy_x/ar...
  • yesjava
  • yesjava
  • 2015年02月25日 10:12
  • 2767

iOS Crash 日志分析

未符号化的崩溃日志就象一本天书,看不懂,更别谈分析崩溃原因了。所以我们在分析日志之前,要把日志翻译成我们可以看得懂的文字。这一步我们称之为符号化。符号化的两种方式: 1.利用Xcode符号化 2....
  • u011307072
  • u011307072
  • 2015年03月20日 11:25
  • 308

iOS 对于上架项目崩溃日志解析

一:找到kobelco.app.dSYM文件: 第一步: 第二步: 第三步: 第四步: 二:将这个文件拷到桌面...
  • dongruanlong
  • dongruanlong
  • 2017年04月06日 16:22
  • 301

友盟抓取crash Log- 解析IOS崩溃日志

http://blog.csdn.net/xyxjn/article/details/43310061 http://blog.csdn.net/smking/article/detai...
  • crs258
  • crs258
  • 2016年05月28日 02:05
  • 3092

IOS Crash日志分析(appStore提交返回的crash日志分析)

IOS Crash Log 分析
  • lele9096_bk
  • lele9096_bk
  • 2017年09月21日 19:55
  • 74

iOS crash报告符号化,.ips文件分析

项目中一部分测试是外包的,测试人员发现了一个偶现的bug,并把.ips文件提供给我们。 下面开始解析crash文件 1.在桌面新建一个文件夹,名字叫crash 2.将.ips文件更名为.cras...
  • rainbowFactory
  • rainbowFactory
  • 2017年06月16日 16:07
  • 1318

iOS常见crash问题及crash日志分析

第一、插入空元素 对于NSMutableArray、NSMutableDictionary、NSMutableSet等可变的对象,插入空元素时crash 正确做法是加判断,sample code如下所...
  • ycxmartin111111
  • ycxmartin111111
  • 2015年01月11日 23:41
  • 1184

Crash日志分析

从Crash文件出发解决bug的一般步骤,分三步:   a, 获取设备上的崩溃日志。   b, 分析崩溃日志,找到报错位置(定位到函数和代码行数)。   c, 打开代码,改bug。   ...
  • qq_19924881
  • qq_19924881
  • 2017年07月11日 09:42
  • 98
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ios crash 日志分析
举报原因:
原因补充:

(最多只允许输入30个字)