iOS开发-dSYM文件

本文详细介绍了iOS开发中dSYM文件的作用,它是用于将崩溃日志映射回源代码位置的关键。内容包括dSYM的存储位置,Xcode的符号化解析方法,如何定位和对比dSYM的Build UUID,以及如何处理Bitcode相关问题。此外,还讲解了如何恢复隐藏的符号表文件和使用symbolicatecrash命令行工具进行符号化操作,帮助开发者高效地分析和解决崩溃问题。
摘要由CSDN通过智能技术生成

dSYM

根据 苹果官方文档,当编译器将源代码转为机械码时,会生成调试符号(debug symbols),通过这些符号可以将机械码映射回到源代码的位置,也就是我们常说的符号化解析

这些调试符号存储在二进制文件中,或者存储在相应的调试符号(dSYM)文件中。默认情况下,应用程序的调试构建将调试符号存储在编译后的二进制文件中,而应用程序的发布(Archive)构建将调试符号存储在相应的dSYM文件中,以减少二进制文件的大小。

通过Archive生成的包里面,都会有一个.dSYM文件

xcode的符号化解析

xcode可以帮我们进行符号化解析
点击Xcode顶部工具栏->Windows->Devices and Simulators->选中设备->View Device Logs就可以查看设备中崩溃信息,你也可以拖拽未符号化的.crash文件到左侧栏,xcode会自动帮你符号化解析.

值得注意的是,文件必须是.crash后缀才行,你可以将.txt等类型文件进行重命名后拖入
在这里插入图片描述
由于可执行文件区分各个架构,例如arm64,armv7s,i386,那么每个架构也有对应的.dSYM

每个架构的符号

符号是特定于操作系统版本和设备的CPU架构
例如,同一个包,运行iOS 13.1.0iPhone与运行iOS 13.1.2iPhone的符号不一样。如果您的应用程序运行在支持多种CPU架构(如arm64arm64e)的操作系统版本上,那么具有arm64架构的设备将只包含操作系统框架的arm64版本的符号,它不会有arm64e设备上的操作系统框架的符号

Bitcode相关

Bitcode是位于代码机械码之间的已编译代码的中间形式。

代码->Bitcode->机械码

这就意味着使用Bitcode设置的包,会在上传后,由App Store进行编译,是无法在打包编译时就获取到.dSYM,你可以在上传后,在Archive的界面进行下载。见 官方文档

在这里插入图片描述

定位你的dSYM

有时候你想知道

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值