DSYM文件

作者: Crazy2015 | 来源:发表于2018-07-15 09:53 被阅读200次
什么是dSYM文件?

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

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

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

Bugly还原Crash堆栈时,需要根据UUID来匹配符号表文件,因此只有上传的符号表文件的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/

相关文章

  • DSYM文件

    什么是dSYM文件? iOS平台中,dSYM文件是指具有调试信息的目标文件,文件名通常为:xxx.app.dSYM...

  • iOS使用dSYM文件和堆栈信息定位bug

    一、首先要找到匹配的.dSYM文件。 工程每次Build都会更新.dSYM文件,所以需要保存.dSYM文件。 在T...

  • symbolicatecrash及atos命令

    根据 dSYM 文件和 .crash文件,分析崩溃原因要保证.dSYM 文件的 uuid 和.crash 文件的 ...

  • dSYM

    什么是 dSYM 文件? Xcode编译项目后,我们会看到一个同名的 dSYM 文件,dSYM 是保存 16 进制...

  • Fabric --> Crashlytics 功能并上传

    1.简单介绍Fabric 2.如何生成DSYM文件 3.如何找到DSYM文件 4.如何将DSYM文件上传至Fabr...

  • iOS 自带工具symbolicatecrash解析iOS C

    什么是 dSYM 文件 Xcode编译项目后,我们会看到一个同名的 dSYM 文件,dSYM 是保存 16 进制函...

  • 如何分析DSYM文件

    什么是 dSYM 文件 Xcode编译项目后,我们会看到一个同名的 dSYM 文件,dSYM 是保存 16 进制函...

  • iOS 打包 没有生成dSYM 文件

    首先,打包后生成dSYM文件的位置:从xcarchive文件中找到dSYM文件。 Xcode中打开Window -...

  • iOS crash报告分析

    相关概念 什么是 dSYM 文件 Xcode编译项目后,我们会看到一个同名的 dSYM 文件,dSYM 是保存 1...

  • 已经上架的app, 你如何崩溃的原因

    organizer里面有上架的时候打包的archive文件, 里面有dSYM 吧.app文件, dsym文件, a...

网友评论

    本文标题:DSYM文件

    本文链接:https://www.haomeiwen.com/subject/ycoupftx.html