dSYM,app,crash 文件 UUID 匹配

iOS通过dSYM文件分析crash日志 iOS通过dSYM文件分析crash日志 平常在开发的过程中,遇到到了Crash可以很容易的通过Xcode去定位Crash的位置,但是当我们的App发布以后,遇到闪退就不可以通过Xcode去调试了。当然现在也有很多产品可以在线分析,例如腾讯的bugly与友盟的错误分析。这些分析工具的最基本的地方还是通过dSYM去分析Crash日志,符号化Crash日志。 准备工作 分析崩溃日志需要三个东西: 阅读详情

什么是 dSYM 文件

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

dSYM 文件有什么作用

当我们软件 release 模式打包或上线后,不会像我们在 Xcode 中那样直观的看到用崩溃的错误,这个时候我们就需要分析 crash report 文件了,iOS 设备中会有日志文件保存我们每个应用出错的函数内存地址,通过 Xcode 的 Organizer 可以将 iOS 设备中的 DeviceLog 导出成 crash 文件,这个时候我们就可以通过出错的函数地址去查询 dSYM 文件中程序对应的函数名和文件名。大前提是我们需要有软件版本对应的 dSYM 文件,这也是为什么我们很有必要保存每个发布版本的 Archives 文件了。

如何将文件一一对应

每一个 xx.app 和 xx.app.dSYM 文件都有对应的 UUID,crash 文件也有自己的 UUID,只要这三个文件的 UUID 一致,我们就可以通过他们解析出正确的错误函数信息了。

1.查看 xx.app 文件的 UUID,terminal 中输入命令 :
dwarfdump –uuid xx.app/xx (xx代表你的项目名)

2.查看 xx.app.dSYM 文件的 UUID ,在 terminal 中输入命令:
dwarfdump –uuid xx.app.dSYM

3.crash 文件内第一行 Incident Identifier 就是该 crash 文件的 UUID ( 这里原文表述不正确,请看以下代码)


dSYM

$ dwarfdump --uuid AppName.app.dSYM/
UUID: 8FFE6FA9-5DC6-3D54-8C16-4D267AA315A5 (arm64) AppName.app.dSYM/Contents/Resources/DWARF/AppName

.app

$ dwarfdump --uuid AppName.app/AppName
UUID: 8FFE6FA9-5DC6-3D54-8C16-4D267AA315A5 (arm64) AppName.app/AppName

.crash 文件

$ grep "AppName arm64" t.crash
0x100020000 - 0x10123bfff AppName arm64  <8ffe6fa95dc63d548c164d267aa315a5> /var/containers/Bundle/Application/A9D19DFA-9553-412B-A124-F07B0DEE01CF/AppName.app/AppName

这样才看出三个文件的确是匹配的.而不是原来友盟说的crash 文件第一行

如何校验.ipa包、.dSYM、.crash文件的一致性 前言 https://developer.apple.com/library/ios/qa/qa1765/_index.html 阅读详情

相关推荐

Xcode7.3工具解析App崩溃日志(.crash文件)

开发的App或者游戏提交审核后,偶尔会收到测试反馈的消息,说应用崩溃了,bug偶尔出现,难以找到确定的重现方法。 怎么办?可以分析崩溃文件啊,也就是app崩溃后,自动保存在设备本地的.crash文件。 获得崩溃日志的方式,在 获取设备上的调试信息与崩溃日志分析 中有说。 在环境ok的情况下,xcode中是可以自动解析.crash文件的。旧版本的xcode甚至可以导入第三方.cra

qufangliu的摘要 7693

dSYM文件是什么 ?

dSYM的全称是, 所以dSYM文件就是, dSYM文件中的每个 debug symbol, 对应了一个关系, 这个关系一端是源代码里真实的符号(类名称、全局变量以及方法和函数名称), 另一端则是其定义的文件号和行号.

侯仕奇的博客 3783

深入了解 dsym 文件在iOS和macOS开发中的应用

在Xcode项目中,dsym文件是调试符号文件,用于存储编译后的程序的调试信息。这些文件对开发者来说至关重要,特别是在进行崩溃分析和性能优化的时候。atos。

weixin_32252929的博客 1255

dSYM的简单介绍

通过http://www.cocoachina.com/ios/20100427/1222.html 这篇文章,结合自己日常工作的理解,提炼了一下主要内容一、dsym是什么?在XCODE编译项目之后,会在app旁看见一个同名的dSYM文件.(rd称之为 符号文件)他是一个编译的中转文件,简单说就是debug的symbols包含在这个文件中.二、dsym有什么作用?当release的版本 crash...

silencewy_l的博客 9418

DSYM--iOS崩溃日志分析工具

DSYM--iOS崩溃日志分析工具 根据崩溃产生的内存地址,跟踪崩溃位置

iOS dSYM 文件分析工具

博客地址:http://blog.youkuaiyun.com/marujunyy/article/details/38388775 使用步骤: 1.将打包发布软件时的xcarchive文件拖入软件窗口内的任意位置(支持多个文件同时拖入,注意:文件名不要包含空格) 2.选中任意一个版本的xcarchive文件,右边会列出该xcarchive文件支持的CPU类型,选中错误对应的CPU类型。 3.对比错误给出的UUID和工具界面中给出的UUID是否一致。 4.将错误地址输入工具的文本框中,点击分析。

iOS dSYM详解和分析crash,ips文件

dSYM 文件是Xcode编译后,我们会看到一个同名的 dSYM 文件,dSYM 是保存 16 进制函数地址映射信息的中转文件,存储应用程序的调试 symbols。每次编译项目或者打包的时候都会生成一个新的 dSYM 文件,当我们软件release模式打包或上线后,不会像我们在Xcode中那样直观的看到用崩溃的错误,所以对于每一个发布版本我们都很有必要保存对应的 Archives 文件

liangyi的博客 8905

无GPS室内飞行:基于PX4与MID360的FAST-LIO定点悬停实战解析

本文详细解析了基于PX4飞控与大疆MID360激光雷达的无GPS室内飞行技术,重点介绍了FAST-LIO算法在定点悬停中的应用。通过硬件配置、软件环境搭建、坐标系转换等实战经验,帮助开发者解决室内定位难题,实现精准悬停与稳定飞行。

weixin_29056781的博客 261

dSYM介绍

在XCODE编译项目之后,会在app旁看见一个同名的dSYM文件. 他是一个编译的中转文件,简单说就是debug的symbols包含在这个文件中. 他有什么作用? 当release的版本 crash的时候,会有一个日志文件,包含出错的内存地址, 使用symbolicatecrash工具能够把日志和dSYM文件转换成可以阅读的log信息,也就是将内存地址,转换成程序里的函数或变量和所属

黑码哥的技术博客 4897

28、解码清华SSVEP基准数据集:从EEG信号到深度学习模型的实战指南

本文详细解析了清华大学SSVEP基准数据集的处理与深度学习模型构建全流程。从EEG信号预处理、数据维度变换到SSVEP分类模型设计,提供了实战代码示例和关键技巧,帮助读者掌握脑机接口领域的数据处理方法与模型优化策略。

weixin_29029995的博客 176

Xilinx PL实现DP TX视频传输的关键配置与实战解析

本文详细解析了在Xilinx ZCU106开发板上,利用PL(可编程逻辑)实现DP TX(DisplayPort发送)视频传输的关键配置与实战流程。内容涵盖从硬件平台搭建、DP TX IP核参数(如链路速率、通道数、视频时序)的详细配置,到软件驱动初始化、中断处理及链路训练的全过程,并提供了屏幕闪烁、颜色异常等常见问题的避坑指南与调试技巧,旨在帮助开发者高效实现稳定的4K视频输出。

weixin_29165465的博客 350

确定crash文件和dSYM是否对应

摘要 通过UUID匹配确保crash文件与调试符号文件(dSYM)对应是iOS崩溃分析的关键步骤。三个关键UUID需要一致:应用程序二进制文件(xx.app)、调试符号文件(xx.app.dSYM)和崩溃报告中的UUID。可以使用dwarfdump --uuid命令查看前两者的UUID,而崩溃报告的UUID位于Binary Images部分的尖括号内。匹配这些UUID能确保正确解析崩溃堆栈信息。此外,崩溃报告还提供了slide address(0x1000ac000)等重要调试信息。

chaoyuan899的专栏 181

库卡机器人负载设置和自动负载测算

1.1在专家或者以上的权限下—“投入运行”——“工具/基座标管理”—“工具/工件”—添加1.2根据当前的工具所在的tool选择指定工具号;若是没有建立tool需要先建立建立方法看1.3负载数据的填写质量:抓手自重+产品重量总和(需要小于额定负载值)X、Y、Z :总质量的重心位置(基于法兰盘中心的位置计算,如下图的X_FLANGE、Y_FLANGE、Z_FLANGE)【此数据可以根据仿真或者CAD数据得出】A、B、C:是总质量绕着法兰盘中心所安装的角度位置 【此数据可以根据仿真或者CAD数据得出】

weixin_43462131的博客 3101

查询app包的uuid

每一个 xx.app 和 xx.app.dSYM 文件都有对应的 UUID,crash 文件也有自己的 UUID,只要这三个文件的 UUID 一致,我们就可以通过他们解析出正确的错误函数信息了。 1.查看 xx.app 文件的 UUID,terminal 中输入命令 : dwarfdump --uuid xx.app/xx (xx代表你的项目名) 2.查看 xx.app.dSYM 文件的

lqqjob的专栏 2626

DELL服务器BIOS下配置RAID阵列

dell服务器配置raid阵列

weixin_58250887的博客 1万+

XCP详解「3.1·ASAP2新建A2L文件」

后面是ASAP2新建A2L的操作步骤,如果是APE中新建的A2L就无需以下操作,APE只需要导入现成的A2L即可。退出点击保存时会提示保存A2L文件,是因为前面导出的是1.70版本,工程最低1.71,可以另外起个名字即可。导入elf文件,elf路径建议直接索引编译生成的Debug下的,防止编译后忘记更新。导出V1.70格式A2L文件,APE17支持V1.70。通过ASAP2生成需要A2L文件更常用些。同一个信号可以创建不同属性量。ASAP2中新建A2L文件。设置标定信号数量最大值。XCP详解「总目录」

光明磊学习&积累的地方 3059

利用.dSYM和.app文件准确定位Crash位置

利用.dSYM和.app文件准确定位Crash位置

九头鹰 1万+

YOLO26涨点改进 | 损失函数改进篇 | 引入SlideLoss,适配尺度变化+遮挡+难易样本不平衡,手把手配置+实战案例

COCO-Hard是COCO数据集的复杂场景子集,包含80个类别,重点筛选多尺度、遮挡密集样本,其中小尺度目标(<32×32像素)占比42%,大尺度目标(>128×128像素)占比28%,遮挡目标占比57%,场景涵盖人群密集、车流拥堵、复杂工业环境,完美模拟真实复杂检测场景,适合验证SlideLoss的适配性。

qq_36130719的博客 157

测试开发-iOS真机Crash Log 的获取和分析

本文主要介绍iPhone的crash log获取方式和log的符号化处理,通过符号化流程可封装成脚本,稳定测试monkey中可直接对捕获的crash log进行解析

Try My Best! 2322

【Unity实战篇】 接入百度翻译,实现文本自动翻译功能

日常在做项目的过程中,游戏本地化几乎已经成为必不可少的一步。 本篇文章将演示怎样在Unity中接入百度翻译,实现文本自动翻译的功能。

努力前行,总会成为自己心中的那道光 9059

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

iOS Crash收集与分析

一、收集crash 1、使用Xcode从设备获取崩溃日志: 如果你把你的手机连接到Mac,并选择Xcode->Windows->Device and Simulator,然后点击View Device Logs,你会看到手机上会有好多Log,其中Type为Crash的就是崩溃的Log,如下图: 2、通过设备直接获取崩溃日志 1)打开设置->隐私->分析->分析数据,...

weixin_37543822的博客 342

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

iOS通过dSYM文件分析crash

iOS通过dSYM文件分析crash

qq_44894420的博客 433

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

DSYM文件

什么是dSYM文件? iOS平台中,dSYM文件是指具有调试信息的目标文件,文件名通常为:xxx.app.dSYM。如下图所示: 为了方便找回Crash对应的dSYM文件和还原堆栈,建议每次构建或者发布APP版本的时候,备份好dSYM文件 dSYM.png 。 如何判断dSYM文件是否与Crash的UUID匹配? Bugly还原Crash堆栈时,需要根据UUID来匹配符号表...

chqj_163的专栏 886

如何使用dSYM符号化crash日志。解析线上crash

如何使用dSYM符号化crash日志。解析线上crash 1 获取未解析的crash日志。 2 获取dSYM文件 3 使用xcode的symbolicatecrash工具进行符号化 3.1 找到symbolicatecrash 3.2 将crash, dSYM,symbolicatecrash放置在同一个文件夹 3.3 执行命令,生成符号化的文件 4 常见问题 4.1 Error: “DEVELOPER_DIR” is not defined at ./symbolicatecrash 4.2...

慢跑20 1010

Xcode dSYM 文件

1、什么是 dSYM 文件 Xcode 编译项目后,我们会看到一个同名的 dSYM 文件,dSYM 是保存 16 进制函数地址映射信息的中转文件,我们调试的 symbols 都会包含在这个文件中,并且每次编译项目的时候都会生成一个新的 dSYM 文件,位于 /Users/&lt;用户名&gt;/Library/Developer/Xcode/Archives 目录下,对于每一个发布版本...

rstbfveradsvc 629
上一篇: iOS 严重问题解释(crash)
下一篇: Apple Watch 结构
小马哥哥哥
博客等级 码龄20年 32粉丝 55原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值