项目中遇到一台手机运行测试包闪退的现象,而且是一个设备闪退其他设备没有再现的情况

可以看到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 69.

再执行如下命令即可

export DEVELOPER_DIR="/Applications/XCode.app/Contents/Developer"

// 再次执行,即可完成crash文件解析
./symbolicatecrash xxx.crash xxx.app.dSYM > xxx.log
 

5. 此时打开xxx.log文件即可获得如下结果,之前是16进制地址的地方,现在全部具体化了,哪个类文件的多少行代码,哪个方法一目了然

然后就可以根据项目的情况解析推断闪退发生的原因了^_^

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

转载于:https://www.cnblogs.com/china-fanny/p/7610487.html

Xcode自带工具symbolicatecrash解析Crash文件相关推荐

  1. 解析app出现闪退,解析.crash文件

    原文参考: http://www.cnblogs.com/easy-coding/p/3656685.html http://www.cnblogs.com/smileEvday/p/Crash1.h ...

  2. 达梦数据库,dimp导入报错:该工具不能解析此文件,请使用更高版本的工具

    经常有朋友反馈达梦数据库,dimp导入报错:该工具不能解析此文件,请使用更高版本的工具 这种问题一般有两种情况: 1.用oracle等异构数据库导出的dmp文件来进行导入,这个是不支持的,建议用数据迁 ...

  3. xcode 使用xparse,xccov解析xcresult文件,查看代码覆盖率,导出日志,提取附件等

    背景 在使用xcode运行代码后,查看运行日志,可以看到在文件夹(macOS系统)下 *xxx为用户名,zzz为项目名 /Users/xxx/Library/Developer/Xcode/Deriv ...

  4. DM工作笔记-dimp及dexp的使用及解决该工具不能解析此文件,请使用更高版本的工具

    再DM的bin目录下有下面2个程序: dimp 导入dump文件的 查看其help文件: dexp 导出demp文件的 查看其help文件: 下面每一个给出一个示例: 导出dmp文件 dexp USE ...

  5. 苹果审核返回崩溃日志 iOS .crash文件处理 symbolicatecrash

    AppStore审核被拒,返回crashLog.txt文件,可是打开后都是十六进制的地址,我们可以使用Xcode自带的symbolicatecrash解析得到我们需要的详细崩溃信息crashLogEn ...

  6. iOS--上线被拒如何从苹果返回的崩溃日志iOS.crash文件处理找崩点(看这篇就懂了)

    2017年底了,现在苹果上线的越来越严,导致被拒的次数也是越来越特多.我们从苹果给的提示可以看出我们大概崩溃的位置,但是作为程序员的我们,找到具体崩溃的点才能更好的修复. AppStore审核没有通过 ...

  7. 别用symbolicatecrash来解析crash Log了

    今天突然发现了一个解析iOS crash log的好方法,忍不住来分享一下. 相信每个做iOS开发的TX都应该不会对symbolicatecrash陌生,我们第一次遇到真机上产生的崩溃日志时,在网上搜 ...

  8. macOS下利用dSYM文件将crash文件中的内存地址转换为可读符号

    一.使用流程 Windows下的程序运行崩溃时,往往可以利用pdb文件快速解析出程序崩溃的具体位置,甚至可以对应到源代码的具体行数.macOS下的symbolicatecrash也具备相应的功能.对应 ...

  9. [299]python实现批量解析PDF文件提取内容并写入到Excel中

    摘要:最近需要将一批PDF文件中的某些数据整理到Excel中,因为文件数量接近20w+,手动更新几乎不现实,于是就提取关键词和内容动手写了个Python小工具,以实现自动完成上述目标. 要求: 读取P ...

最新文章

  1. 详解linux下auto工具制作Makefile源码包(制作篇)
  2. stm32 温湿度_基于STM32单片机大棚温湿度检测无线蓝牙APP控制设计
  3. 解决navicate 连接mysql数据库中文乱码的问题
  4. InstallShield 2011中数字签名失败的问题
  5. java整数类型int字面值_JavaKotlinAndroidGuide
  6. numpy的random
  7. ABAP调试器脚本的一个具体应用
  8. MFC如何使控件大小随着对话框大小自动调整
  9. 前端学习(3031):vue+element今日头条管理-暂时当前登录用户信息
  10. SQLite3中的数据类型
  11. Redis的发布订阅(消息队列,比如ActiveMQ,一方得到数据后,多方得到信息)
  12. 第十课 これは古い庭園です。
  13. python怎么替换主干网络_无法将关键字“model”解析到字段中。活塞主干网.js
  14. Android系统 miui主题6,miui主题工具-miui主题工具最新版v2.6.2 安卓版_永辉资源网
  15. 参数整定类毕业论文文献有哪些?
  16. 莱布尼茨公式C语言编程,高等数学——手撕牛顿莱布尼茨公式
  17. 服务器装win10系统,win10服务器系统
  18. python实现高级计算器_Python实现的复杂的计算器的代码
  19. SMT操作手册V1.0 模板
  20. 布鲁特-福斯算法(字符串匹配)

热门文章

  1. 《深入理解Android:卷III A》一一2.3心系两界的MessageQueue
  2. 用上 RocketMQ,系统性能提升了 10 倍!
  3. 银行祖传系统重构实例:创立12年,只支持Python 2,跑着500多个应用程序
  4. 奇葩面试经历分享:喊价25K,HR 却给了30K!
  5. 为什么“无人问津”的Lisp可以这么狂?
  6. 面试再问值传递与引用传递,把这篇文章砸给他!
  7. Java专家系列:CPU Cache与高性能编程
  8. JEECMS自定义标签开发步骤
  9. 网络:HTTP1.1和HTTP2区别
  10. 无效0_一场时代的变革,一场与时间的较量,“0”无效载体、“0”空气氧化、“0”细菌生存。...