我正在和另一个开发者开发一个应用,他们刚刚向应用store 提交了一个版本,这个应用store 是在他们的电脑上建立的.为了在我的机器(属于同一git commit)上进行构建,我必须更改我们在XCode项目中使用的一个库的路径.我对XCode项目文件所做的任何更改都会改变dSYM吗?如果我能够在不修改XCode项目文件的情况下进行构建,那么dSYM文件会是相同的吗?
我正在和另一个开发者开发一个应用,他们刚刚向应用store 提交了一个版本,这个应用store 是在他们的电脑上建立的.为了在我的机器(属于同一git commit)上进行构建,我必须更改我们在XCode项目中使用的一个库的路径.我对XCode项目文件所做的任何更改都会改变dSYM吗?如果我能够在不修改XCode项目文件的情况下进行构建,那么dSYM文件会是相同的吗?
dSYM文件是"调试符号文件".它是在项目的生成设置中启用"带调试符号"设置时生成的.
启用此设置后,对象的符号名将从生成的已编译二进制文件中删除(try 和防止黑客/黑客反向工程代码,以及其他二进制大小优化等的许多对策之一).
dSYM文件可能会在每次编译应用程序时更改(可能由于日期戳的原因,每次都会更改),并且与项目设置无关.
它们有助于重新标记您的碰撞报告.使用剥离二进制文件,如果不首先重新标记它们,您将无法读取任何碰撞报告.如果没有dSYM,崩溃报告将只显示对象和方法的内存地址.Xcode使用dSYM将符号放回崩溃报告中,并允许您正确读取它.
理想情况下,不应该在git repo中跟踪您的dSYM文件.像其他在构建时发生变化的二进制文件一样,将它们保留在源代码控制中是没有用的.然而,话虽如此,重要的是要将每个分布式构建(Beta、新闻稿、app store分发版等)的dSYM文件保存在安全的地方,以便能够象征性地显示可能收到的任何崩溃报告.当您使用存档选项时,Xcode会自动为您执行此操作.创建的归档文件包含应用程序及其dSYM,并存储在Xcode的派生数据目录中.