DSYM文件

article/2025/1/11 8:17:12

什么是dSYM文件?

iOS平台中,dSYM文件是指具有调试信息的目标文件,文件名通常为:xxx.app.dSYM。如下图所示:

为了方便找回Crash对应的dSYM文件和还原堆栈,建议每次构建或者发布APP版本的时候,备份好dSYM文件

dSYM.png


 

如何判断dSYM文件是否与Crash的UUID匹配?

Bugly还原Crash堆栈时,需要根据UUID来匹配符号表文件,因此只有上传的符号表文件的UUID与Crash对应APP的UUID一致时,才能准确地对堆栈进行还原。

  • 查看符号表文件的UUID(“如何查看dSYM文件的UUID?”)

  • 查看Crash对应的APP的UUID

如何查看dSYM文件的UUID?

通过命令查看UUID

xcrun dwarfdump --uuid <dSYM文件>

通过符号表文件查看UUID
符号表文件的UUID与dSYM文件的UUID是一致的,因此可以通过符号表工具生成的符号表文件来查看dSYM文件的UUID:

生成符号表文件(.zip) ---> 解压符号表文件(.symbol) ---> 使用文本编辑器打开符号表文件

UUID.png

 

其中符号表文件的“UUID”信息即Debug SO文件的UUID,亦是符号表文件的UUID,如果文件较大,建议使用“Sublime Text”等文本编辑器来打开符号表文件。

dSYM 文件有什么作用

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

dSYM 符号集

符号集是我们对ipa文件进行打包之后,和.app文件同级的后缀名为.dSYM的文件,这个文件必须使用Xcode进行打包才有。

每一个.dSYM文件都有一个UUID,和.app文件中的UUID对应,代表着是一个应用。而.dSYM文件中每一条崩溃信息也有一个单独的UUID,用来和程序的UUID进行校对。

我们如果不使用.dSYM文件获取到的崩溃信息都是不准确的。

符号集中存储着文件名、方法名、行号的信息,是和可执行文件的16进制函数地址对应的,通过分析崩溃的.Crash文件可以准确知道具体的崩溃信息。
我们每次Archive一个包之后,都会随之生成一个dSYM文件。每次发布一个版本,我们都需要备份这个文件,以方便以后的调试。进行崩溃信息符号化的时候,必须使用当前应用打包的电脑所生成的dSYM文件,其他电脑生成的文件可能会导致分析不准确的问题。

当程序崩溃的时候,我们可以获得到崩溃的错误堆栈,但是这个错误堆栈都是0x开头的16进制地址,需要我们使用Xcode自带的symbolicatecrash工具来将.Crash和.dSYM文件进行符号化,就可以得到详细崩溃的信息。

https://www.jianshu.com/p/0b6f5148dab8

http://foggry.com/blog/2015/07/27/ru-he-shou-dong-jie-xi-crashlog/



作者:Crazy2015
链接:https://www.jianshu.com/p/ec695ef26891
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。


http://chatgpt.dhexx.cn/article/GIUyjbJh.shtml

相关文章

Xcode打包后,找不到dSYM文件

在一次分析crash时&#xff0c;需要用到dSYM文件&#xff0c;于是去对应的位置找&#xff0c;结果找到一个空文件夹&#xff0c;里面什么都没有&#xff0c;这是怎么回事&#xff1f; 后来发现是在打包的时候&#xff0c;在TARGET->Building Setting->Build Option下的设…

dSYM文件是什么 ?

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

通过dSYM文件分析crash日志

一、获取crash日志 1、连接崩溃手机&#xff0c;同步 2、日志保存位置&#xff1a; ~/Library/Logs/CrashReporter/MobileDevice/ 3、找到对应的手机和对应的crash文件 二、获取dsym文件 1、 XCode -> Window -> Organizer -> Archiver 找到对应的打包项目&#xf…

手动解析App dSYM示例

https://www.jianshu.com/p/c507f95646bd 前期准备 崩溃日志地址(涉及敏感数据已屏蔽)对应app 的 dSYM文件&#xff0c;利用dwarfdump --uuid <file_to_detect>检测dSYM文件uuid和app执行文件uuid是否匹配 $ dwarfdump --uuid APP_BUNDLE_NAME.app.dSYMUUID: F181E27B…

dSYM介绍

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

dSYM文件分析

dSYM 文件 什么是 dSYM 文件 Xcode编译项目后&#xff0c;我们会看到一个同名的 dSYM 文件&#xff0c;dSYM 是保存 16 进制函数地址映射信息的中转文件&#xff0c;我们调试的 symbols 都会包含在这个文件中&#xff0c; 并且每次编译项目的时候都会生成一个新的 dSYM 文件&am…

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

1.什么是dSYM文件 dSYM 文件是Xcode编译后&#xff0c;我们会看到一个同名的 dSYM 文件&#xff0c;dSYM 是保存 16 进制函数地址映射信息的中转文件&#xff0c;存储应用程序的调试 symbols。每次编译项目或者打包的时候都会生成一个新的 dSYM 文件&#xff0c;当我们软件rel…

Xcode骚操作之:解决报错 MapFileParser.sh: Permission denied

MapFileParser.sh: Permission denied Unity项目&#xff0c;需要用Xcode运行&#xff0c;结果报了错误。 解决方案&#xff1a; 1、启动台》其它》选择 终端 &#xff0c;输入以下命令&#xff1a; chmod空格x空格拖拽这个文件到小黑框 回车 注意&#xff1a;chmod x的意思…

ipa重签名的四种方式

文章为学习hank的视频笔记 一 开发者调试安装app到手机的签名过程 1. Mac电脑生成公钥M和私钥M 2. 公钥M传给苹果服务器,苹果服务器的私钥A对公钥M进行加密生成证书返回给xcode 3. Xcode下载profile等描述文件,用公钥M对app进行加密生成app签名,然后把app签名和证书以及p…

闲聊扯淡 | 微信8.0背景视频合集,笑死我了

微信 8.0 更新已经有几天了&#xff0c;最开始现在 IOS 端推行&#xff0c;昨天在安卓端也可以更新了&#xff0c;没有更新的小可爱快去更新试试吧。 除了重新高清化的表情以及衍生的表情包大战外&#xff0c;各种新玩法也被不断挖掘出来。 值得一提的就是微信 8.0 中是支持视频…

Unity简单操作:获取 apk在 苹果平台 或者 安卓平台,它自身的包名

在运行时返回应用程序标识。在 Apple 平台上为保存在 info.plist 文件中的“bundleIdentifier”&#xff0c;在 Android 平台上为 AndroidManifest.xml 中的“package”。(com.xxxx.xxxx)

iOS 多线程和GCD(Grand Central Dispath) 教程 (一)

iOS 多线程和GCD(Grand Central Dispath) 教程 &#xff08;一&#xff09; 本文翻译自 Ray Wenderlich 的博客 点击打开原文链接。全部由本人亲手翻译...童叟无欺~ 你有木有遇见过这样的情况&#xff0c;当你在写app的时候&#xff0c;有时候界面就卡住了&#xff0c;要等很长…

iOS【开发热门游戏_超级猜图Demo】

先看效果图 思路 需求分析 1&#xff0c;搭建界面 1》上半部分&#xff0c;固定的&#xff0c;用Storyboard直接连线(OK) 2》下半部分&#xff0c;根据题目的变化&#xff0c;不断变化和调整&#xff0c;用代码方式实现比较合适(OK) *备选按钮区域(OK) *答案按钮区域(OK)…

unity骚操作之: 解决AVPro Video在安卓移动端播放不了SteramAssecting里面的视频 或者 URL视频

Unity自带VideoPlay用来播放视频有bug,在移动端测试无法正常使用Url播放,所以找到AVProVideo,这个插件很好用,移动端亲测可用,功能也全,这里记录下使用心得 下载地址:支持Unity2019及以上版本AVProVideo1.11.5视频播放插件.zip_avpro安卓11不能播放-C#文档类资源-CSDN下…

unity普通操作:animator播放,暂停,判断播放完成【(增加1个判断如果这个是动画融合的情况)】

1.播放&#xff0c;暂停 anim.CrossFade("s2", 0); anim.speed0&#xff1b;//暂停 anim.speed1&#xff1b;//播放 判断播放完成&#xff08;Update方式&#xff09; void Update(){AnimatorStateInfo stateinfo2 anim.GetCurrentAnimatorStateInfo(0);//判断…

猫猫学IOS(五)UI之360等下载管理器九宫格UI

猫猫分享&#xff0c;必须精品 素材下载地址&#xff1a;http://blog.csdn.net/u013357243/article/details/44486651 先看效果 主要是完成了九宫格UI的搭建 代码 - (void)viewDidLoad {[super viewDidLoad]; //九宫格中每个格子的宽 #define kAppViewW 80 //九宫格中每个格…

猫猫学IOS(七)UI之UITextField代理事件_类似QQ登陆窗口的简单实现

猫猫分享&#xff0c;必须精品 素材代码地址: http://blog.csdn.net/u013357243/article/details/44587005 原文地址&#xff1a;http://blog.csdn.net/u013357243/article/details/44571163 先看效果图&#xff1a; 学习代码 // // NYViewController.m // 05-UITextFie…

国行Apple Watch 开启 ECG 心电图功能

国行Apple Watch 开启 ECG 心电图功能 设备要求 1.iphone 升级到最新系统 2.apple watch 升级到最新系统 3.最好有一台备用iphone来保证数据不被泄露 开通原理 1.我们需要有一个已开通ECG功能的appleId 2.登录此appleId到设备 3.同步健康App数据到本地 4.退出账号 5.登…

iOS开发:面向协议编程与 Cocoa 的邂逅 (上)

//联系人:石虎 QQ: 1224614774昵称:嗡嘛呢叭咪哄 喵神原文地址&#xff1a;https://onevcat.com/2016/11/pop-cocoa-1/ 本文是笔者在 MDCC 16 (移动开发者大会) 上 iOS 专场中的主题演讲的文字整理。您可以在这里找到演讲使用的 Keynote&#xff0c;部分示例代码可以在 MDCC …

猫猫学IOS(十三)UI之UITableView学习(下)汽车名牌带右侧索引

猫猫分享&#xff0c;必须精品 素材代码地址&#xff1a;http://blog.csdn.net/u013357243/article/details/44727225 原文地址&#xff1a;http://blog.csdn.net/u013357243?viewmodecontents 先看效果图 代码 ViewController //ps&#xff1a;新建iOS交流学习群&#xf…