我正在和另一个开发者开发一个应用,他们刚刚向应用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的派生数据目录中.

Objective-c相关问答推荐

uipageviewcontroller 类在设置多个视图控制器时崩溃

Objective-C:在字符串中查找数字

将 NSInteger 变量传递给 NSMutableDictionary 或 NSMutableArray

在 Objective-C 中实现纯虚方法

NSFileManager 唯一的文件名

如何将 UISlider 垂直放置?

如何使用整数值作为键在 NSMutableDictionary 中设置值?

捕获组在 NSRegularExpression 中不起作用

NSView 的边界与框架

ios 13 - 带有 UISearchBar _searchField 的自定义 SearchBar 不起作用

iOS:使用设备修饰符加载 xib 文件?

属性与实例变量

Objective-C 实例变量?

如何将@selector 作为参数传递?

仅在 UIView 顶部的圆角

在 UITextField 文本上投影

在 Objective-C 中_和touch之间的区别

在 UITableView 的 iOS 文档目录中列出保存的文件?

如何配置我的应用程序 - 菜单项被禁用?

判断 UIViewController 是否即将从导航堆栈中弹出?