我正在与另一位开发者合作开发一个应用,他们刚刚在他们的电脑上提交了一个版本到应用商店。为了在我的机器上构建一个版本(该版本属于同一个Git提交),我必须在XCode项目中更改我们使用的库之一的路径。我对XCode项目文件进行的任何更改会改变dSYM吗?如果我能够在不修改XCode项目文件的情况下构建版本,dSYM文件是否相同?
我正在与另一位开发者合作开发一个应用,他们刚刚在他们的电脑上提交了一个版本到应用商店。为了在我的机器上构建一个版本(该版本属于同一个Git提交),我必须在XCode项目中更改我们使用的库之一的路径。我对XCode项目文件进行的任何更改会改变dSYM吗?如果我能够在不修改XCode项目文件的情况下构建版本,dSYM文件是否相同?
dSYM 文件是“调试符号文件”。当项目构建设置中启用“剥离调试符号”选项时生成。
启用此选项后,您对象的符号名称将从编译后的二进制文件中删除(这是许多对抗措施之一,旨在防止可能会对您的代码进行反向工程的人/破解者,以及二进制大小等优化措施)。
dSYM 文件很可能每次编译应用程序时都会更改(由于时间戳的原因,可能每次都更改),与项目设置无关。
它们可用于重新符号化崩溃报告。使用剥离后的二进制文件,您将无法在未重新符号化崩溃报告的情况下阅读任何崩溃报告。如果没有 dSYM,则崩溃报告仅显示对象和方法的内存地址。Xcode 使用 dSYM 将符号放回到崩溃报告中,使您能够正确地阅读它。
理想情况下,您的 dSYM 文件不应在 git 存储库中跟踪。像其他在构建过程中更改的二进制文件一样,将其保留在源代码控制中是没有用处的。但是,话虽如此,重要的是您将每个分发版本的 dSYM 文件(测试版、发布版、应用商店分发等)保存在安全的位置,以便在需要时可以重新符号化任何崩溃报告。当您使用存档选项时,Xcode 会自动为您执行此操作。创建的存档包含您的应用程序及其 dSYM,并存储在 Xcode 派生数据目录中。