Xcode自带工具symbolicatecrash解析Crash文件
项目中遇到一台手机运行测试包闪退的现象,而且是一个设备闪退其他设备没有再现的情况
可以看到Crash信息,但是指定的问题给出的是16进制内存地址,根本无法定位问题发生在哪个类的哪个函数中
所以需要解析这个Crash文件,好了,废话就说这么多,以下是干货~~~
文章讲述如下5个问题:
一、如何获取手机的Crash文件
二、使用symbolicatecrash解析Crash文件具备的条件
三、如何获取以上三个文件
四、如何找到symbolicatecrash
五、如何使用symbolicatecrash
==============================我是分割线=============================================
一、如何获取手机的Crash文件
1. 打开Xcode,连接上手机
2. 菜单中,Window->Devices,打开Devices窗口

3. 左侧选中连接的手机,右侧即可看到Crash信息,View Device Logs
Log类似这样的:
二、使用symbolicatecrash解析Crash文件具备的条件
1. xxx.crash后缀名的文件
2. xxx.app.dSYM后缀名的文件
3. xxx.app文件
注:xxx为项目名称
三、如何获取以上三个文件
1. crash文件在第一步中已经说明,将内容保存在以【项目名.crash】为文件名的文件即可
2.后两个文件一起获得,可以通过Xcode获取,也可以通过终端输入命令行获得:
通过Xcode获取:
①Xcode->Window->Organizer,打开Archive窗口,找到App,点击显示菜单显示Show In Finder

②打开Archive文件夹,找到Archive文件->显示包内容
在dSYMs文件夹中找到.app.dSYM文件
在Products->Applications文件夹中找到app文件
然后将这三个文件放在一个文件夹下,以供后面使用


通过终端命令行找:
①打开终端,输入cd ~先到根目录
②然后输入cd Library/Developer/Xcode/Archives/
③然后输入open. 打开Archive文件夹,后面就和通过Xcode的步骤②是一样的了
四、如何找到symbolicatecrash
1. 终端中输入如下命令行进行查找:
find /Applications/Xcode.app -name symbolicatecrash -type f
2. 根据查找结果,带有iPhone路径的,即可找到 symbolicatecrash

3. symbolicatecrash所在的文件夹,复制symbolicatecrash文件到之前放那三个文件的文件夹中
cd 复制查找的路径到此处
open .

============以上所有工作逐步就绪,以下如何使用symbolicatecrash命令===========
五、如何使用symbolicatecrash
1. 必须保证app文件,.app.dSYM及.crash文件的uuid一致才可解析成功
2. 终端输入命令进入存放文件的文件夹,执行如下命令
dwarfdump --uuid xxx.app/YouXiIOSClient
dwarfdump --uuid xxx.app.dSYM
3. 通过以上命令查看uuid,然后对比.crash文件第一行的Incident Identifier,看他们是否一致
(我的情况是前两个文件一致,肯定的,但是和.crash文件不一致,我的做法是把.crash文件的改成和他俩一致)
4. 执行命令
./symbolicatecrash xxx.crash xxx.app.dSYM > xxx.log
此时会出现报错:
Error: "DEVELOPER_DIR" is not defined at ./symbolicatecrash line .
再执行如下命令即可
export DEVELOPER_DIR="/Applications/XCode.app/Contents/Developer" // 再次执行,即可完成crash文件解析
./symbolicatecrash xxx.crash xxx.app.dSYM > xxx.log
5. 此时打开xxx.log文件即可获得如下结果,之前是16进制地址的地方,现在全部具体化了,哪个类文件的多少行代码,哪个方法一目了然
然后就可以根据项目的情况解析推断闪退发生的原因了^_^

=======================最后来一张对比照片,看的更清晰==============================

Xcode自带工具symbolicatecrash解析Crash文件的更多相关文章
- symbolicatecrash解析crash文件
导出crash文件 Xcode -> Window -> Devices and Simulators -> View Device Logs ,然后选中导出. 找到.app文件和. ...
- 命令行工具解析Crash文件,dSYM文件进行符号化
备份 文/爱掏蜂窝的熊(简书作者)原文链接:http://www.jianshu.com/p/0b6f5148dab8著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”. 序 在日常开发 ...
- 命令行解析Crash文件
做了快两年的开发了,没有写过博客,最近公司app上架,程序崩溃被拒绝了,可是给的crash文件,又看不出哪里的问题,网上各种搜,终于找到了解决的办法,想想还是写个博客吧,希望给哪些也遇到这类问题的朋友 ...
- iOS- 全方位解析.crash文件崩溃报告
1.前言 想来每个iOS攻城狮,都免不了要接触.crash文件 那么什么是.crash文件? iOS app的所有崩溃记录都会记录在设备上,所以对于和我一样没有集成让用户发送崩溃报告功能的iOS开发者 ...
- 使用symbolicatecrash分析crash文件
对于我们iOS开发者来说,最心碎的事莫过于苹果审核一个星期后上架app store,而第二天就报出闪退bug.一周前我刚经历过,而且最坑的是由于第一次做个人开发,经验不足,没有集成友盟的分析SDK,还 ...
- [iOS]使用symbolicatecrash分析crash文件
对于我们iOS开发者来说,最心碎的事莫过于苹果审核一个星期后上架app store,而第二天就报出闪退bug.一周前我刚经历过,而且最坑的是由于第一次做个人开发,经验不足,没有集成友盟的分析SDK,还 ...
- 提效工具-python解析xmind文件及xmind用例统计
现状 每个公司都有一个维护测试case的系统,有自研的也有买的,比如QC, 禅道等等,QA往往习惯使用xmind等思维导图工具来编写测试用例,因为思路清晰,编写方便,那么这就有一个问题,大多公司要求所 ...
- 系统自带的NSJSONSerialization解析json文件
#import "ViewController.h" #import "Student.h" #import "GDataXMLNode.h" ...
- iOS如何解析crash文件中的地址
1.目录中存放app文件 2.打开文件 3.执行命令otool -arch arm64 -l ./QQStock | grep -B 1 -A 10 "LC_SEGM" | gr ...
随机推荐
- 【转】用python实现简单的文本情感分析
import jieba import numpy as np # 打开词典文件,返回列表 def open_dict(Dict='hahah',path = r'/Users/zhangzhengh ...
- 中兴ZXV10 B860AV1.1 全TTL操作完美破解
本文转自:http://www.znds.com/tv-496624-1-1.html 1)前期准备工作 1.1 拆开盒子,TTL接线,这个论坛里有好多其它帖子,就不再详细描述. 1.2 复制需要安装 ...
- 基于jQuery动画二级下拉导航菜单
春节回来给大家分享一款基于jQuery动画二级下拉导航菜单.鼠标经过的时候以动画的形式出现二级导航.效果图如下: 在线预览 源码下载 实现的代码. html代码: <div id=" ...
- 一份不错的php面试题(附答案)(笔试题)
一.基础题1. 写出如下程序的输出结果 <?php $str1 = null; $str2 = false; echo $str1==$str2 ? '相等' : '不相等'; $str3 = ...
- VMware12激活码,win10激活码
VMware Workstation 12序列号: 5A02H-AU243-TZJ49-GTC7K-3C61N win10激活码:这里在网上搜集到很多激活码,可能有的不能用. WRUF7-AFI0 ...
- SQL select查询原理--查询语句执行原则<转>
1.单表查询:根据WHERE条件过滤表中的记录,形成中间表(这个中间表对用户是不可见的):然后根据SELECT的选择列选择相应的列进行返回最终结果. 1)简单的单表查询 SELECT 字段 FROM ...
- Hdu 2236 无题II 最大匹配+二分
题目链接: pid=2236">Hdu 2236 解题思路: 将行和列理解为二分图两边的端点,给出的矩阵即为二分图中的全部边, 假设二分图能全然匹配,则说明 不同行 不同列的n个元素 ...
- thinkphp 命名规范
目录和文件命名 目录和文件名采用 小写+下划线,并且以小写字母开头: 类库.函数文件统一以.php为后缀: 类的文件名均以命名空间定义,并且命名空间的路径和类库文件所在路径一致(包括大小写): 类名和 ...
- 常用cmd
net use 查询相应的共享文件 control userpasswords2--修改计算机的网络凭证 删除计算机记录的网络共享凭证 重启网络
- Pycharm 建立工程,包含多个工程目录