我正在与另一位开发人员合作开发一款应用,他们只是向他们的计算机上构建的应用商店提交了一个版本。为了在我的机器上构建(属于同一个git commit),我必须改变我们在XCode项目中使用的库之一的路径。我对XCode项目文件所做的任何更改是否会更改dSYM?如果我能够在不修改XCode项目文件的情况下进行构建,那么dSYM文件是否会相同?
答案 0 :(得分:107)
dSYM文件是"调试符号文件"。它是在" Strip Debug Symbols"在项目的构建设置中启用了设置。
启用此设置后,将从生成的编译二进制文件中删除对象的符号名称(尝试和阻止的许多对策之一是黑客/破解程序对代码进行逆向工程,以及二进制大小的其他优化等) )。
dSYM文件可能会在每次编译应用程序时更改(可能每次都由于日期戳),并且与项目设置无关。
它们可用于重新标记崩溃报告。使用剥离的二进制文件,您无法在不首先重新对其进行重新符号化的情况下阅读任何崩溃报告。如果没有dSYM,崩溃报告将只显示对象和方法的内存地址。 Xcode使用dSYM将符号放回崩溃报告中,并允许您正确读取它。
理想情况下,您的dSYM文件不应该在您的git仓库中进行跟踪。像在建筑物上改变的其他二进制文件一样,将它们保持在源代码控制中是没有用的。但是,说到这一点,重要的是保持每个分布式构建(测试版,新闻稿,应用程序商店发行版等)的dSYM文件安全,以便您能够表示您可能获得的任何崩溃报告。当您使用存档选项时,Xcode会自动为您执行此操作。创建的存档包含您的应用及其dSYM,并存储在Xcode的派生数据目录中。