iOS 崩溃日志分析(个人总结,最实用)

要分析奔溃日志需要三个文件:crash日志,symbolicatecrash分析工具,.dSYM符号集

0. 在桌面创建一个crash文件夹

1. 需要Xcode自带的崩溃分析工具symbolicatecrash,这个文件的位置参考:/Applications/Xcode.app/Contents/SharedFrameworks/DTDeviceKitBase.framework/Versions/A/Resources/symbolicatecrash
快速找到的方法:打开finder后右键code.app 显示包内容然后   /Contents/SharedFrameworks/DTDeviceKitBase.framework/Versions/A/Resources/symbolicatecrash
将symbolicatecrash 拷贝到桌面的crash文件夹中

2. 找到崩溃程序对应的.dSYM文件,这个文件是每个打包的程序都唯一对应的,所以每次打测试包的时候就要注意提前保存
寻找.dSYM文件的位置:Xcode->window->organizer 选择Archives(打测试包的时候就在这个位置,可以直接操作)右键show in finder 可以看到你的程序文件,再右键这个文件显示包内容有一个dSYMS文件夹,点击进去,将.dSYM文件拷贝到桌面上的crash文件夹

3.找到你崩溃时的crash文件,位置:Xcode->window->Devices->选中测试手机,点击views Devices Logs,根据时间点找到你的崩溃日志,右键Export 到桌面,再将这个crash文件放入桌面的crash文件夹

4.打开终端,进入你的crash文件夹:/Desktops/crash 然后使用命令:./symbolicatecrash ./*.crash ./*.app.dSYM>symbol.crash 如果出现解析过程就说明解析成功,这个时候再返回你的crash文件夹打开crash文件,就能够看到解析后的crash,可以直接定位奔溃位置,奔溃函数名也能看到

5.如果执行命令失败出现Error:"DEVELOPER_DIR" is not defined at ./symbolicatecrash line 60.
需要先执行export DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer 命令后再执行./symbolicatecrash ./*.crash ./*.app.dSYM>symbol.crash

6.如果出现Error: can't find tool named 'otool' in the macosx SDK or any fallback SDKs at ./symbolicatecrash line 115.参照http://stackoverflow.com/questions/33358799/cant-find-tool-named-otool-in-the-macosx-sdk-or-any-fallback-sdks-at-symbol以及http://www.tuicool.com/articles/VzEBBn

7. 补充说明:

cat ./symbol.crash

可以在终端打开解析后的crash文件,再使用

dwarfdump --lookup 0x000cf358 --arch armv7 appname.app.dSYM/

根据奔溃位置地址信息找到指定位置

Line table dir : '/Users/zhy/Downloads/ios/vlink_app_xunyi/xunYi7/library/ASIHttpRequest'
Line table file: 'ASIDownloadCache.m' line 320, column 3 with start address 0x00000000000cf340

注:关于.dSYM文件,当程序运行之后直接去products中右键show in finder 也能找到

iOS 崩溃日志分析(个人总结,最实用)的更多相关文章

  1. iOS崩溃日志分析-b

    1名词解释 1.1. UUID 一个字符串,在iOS上每个可执行文件或库文件都包含至少一个UUID,目的是为了唯一识别这个文件. 1.2. dwarfdump 苹果提供的命令行工具,其中一些功能就是查 ...

  2. [转]IOS 崩溃日志分析

    以下是一个crash log示例: // 1: Process Information Incident Identifier: 30E46451-53FD--896A-457FC11AD05F Cr ...

  3. iOS崩溃日志分析

    Incident Identifier: 55864905-937C-4172-B435-2ACA13D3070ECrashReporter Key: b85cab13431711060a5fab55 ...

  4. iOS应用崩溃日志分析 iOS应用崩溃日志揭秘

    转自:http://www.raywenderlich.com/zh-hans/30818/ios%E5%BA%94%E7%94%A8%E5%B4%A9%E6%BA%83%E6%97%A5%E5%BF ...

  5. 【转】iOS应用崩溃日志分析

    作为一名应用开发者,你是否有过如下经历?   为确保你的应用正确无误,在将其提交到应用商店之前,你必定进行了大量的测试工作.它在你的设备上也运行得很好,但是,上了应用商店后,还是有用户抱怨会闪退 ! ...

  6. iOS应用崩溃日志分析

    转自raywenderlich   作为一名应用开发者,你是否有过如下经历?   为确保你的应用正确无误,在将其提交到应用商店之前,你必定进行了大量的测试工作.它在你的设备上也运行得很好,但是,上了应 ...

  7. iOS crash日志分析

    iOS crash日志分析 一. 寻找crash文件:手机崩溃后的ips或者crash文件(ips文件可以直接修改成crash文件,直接改后缀名就可以了),这里说下如何拿到crash文件 1. 把运行 ...

  8. 友盟崩溃日志分析工具 - dSYMTools

    公司的项目中集成了UM的统计功能,UM统计可以统计app的用户新增,版本分布,日志崩溃等信息,打开错误分析按钮,则可能会看到很多崩溃的日志信息 选择编辑可以选择更多的版本号 点击列表中的一个崩溃日志, ...

  9. iOS崩溃日志ips文件解析

    iOS崩溃日志ips文件解析  一 简介 测试组的同事在进行稳定性测试时,通常会遇到一些崩溃,然后他们会将这些崩溃日志(一般是ips格式的文件)反馈给开发进行分析,但是这些ips文件中的内容通常是如下 ...

随机推荐

  1. flask-SQLAlchemy的ORM

    1.创建表 import datetime from sqlalchemy import create_engine from sqlalchemy.ext.declarative import de ...

  2. Cocos2d-js 开发记录:声音播放

    声音播放可以使用cc.audioEngine,需要播放的文件在resource.js中进行添加如: button_press_mp3: "res/audio/press.mp3", ...

  3. iOS instruments之ui automation的简单使用(高手绕道)

    最近使用了几次instruments中的automation工具,现记录下automation的简单使用方法,希望对没接触过自动化测试又有需求的人有所帮助.  UI 自动测试是iOS 中重要的附加功能 ...

  4. 【数据库】1.0 MySQL入门学习(一)——常识性知识

    1.0 什么是MySQL(官方发音 My Ess Que Ell)? 是一个快速.多线程.多用户和强壮的SQL数据库服务器,SQL是世界上最流行的标准化数据库语言. 名字来源:共同创办人Monty W ...

  5. easyui datagrid 本地json数据 实现删除

    html代码:<a href='javascript:void(0);' onclick='Delete(\""+ index +"\")' class= ...

  6. 搭建 Spring 2.5.6 开发环境

    1.jar 包准备: spring 2.5.6 的 jar 包(链接: http://pan.baidu.com/s/1skVFfcx 密码: mbiz),如图: commons-logging-1. ...

  7. Linux 配置 ss

    Linux 配置 Shadowsocks 标签(空格分隔): ss VPS 1.首先安装 sudo pip install shadowsocks 2.然后在指定位置新建shadowsocks.jso ...

  8. oracle_union_operator

    SQL: UNION Operator This SQL tutorial explains how to use the SQL UNION operator with syntax and exa ...

  9. 【java开发系列】—— 嵌套类与内部类

    嵌套类与内部类在java中使用的很广泛,为了避免难以理解,这里用了几个小例子,说明它的用法. 嵌套类与内部类的结构如下图 静态嵌套类 静态嵌套类,是一种在类之外声明的嵌套类,由于是静态的,所以不经过初 ...

  10. MFC 鼠标事件

    1. 新建项目 项目名称:MFCBaseMessage 2. 选择基本对话框模式,如图 ,点击完成3. 最终如图 4.右键添加类向导   5.添加鼠标事件 6.在ON_LButtonDown添加如下代 ...