Iphone 调试时XCode调试与发布版本

Iphone 调试时XCode调试与发布版本,iphone,xcode,macos,Iphone,Xcode,Macos,好的,我想我现在已经看到了一切 大约24小时以来,我一直在调试我的应用程序,试图找出所有奇怪的崩溃是从哪里突然发生的。我一直在通过模拟器/调试模式进行调试。和往常一样,当我遇到断点时,我可以看到变量的值(大部分时间)。然后突然,无论我做了什么,我都无法查看变量(顺便说一句,我说的是鼠标悬停,因为某种愚蠢的原因,我的xcode禁用了调试菜单中的所有调试工具) 长话短说,由于完全失去了要做的事情,我决定用发布模式进行调试。现在我可以点击断点并查看变量的内容。更令人困惑的是,现在xcode给了我一个更

好的,我想我现在已经看到了一切

大约24小时以来,我一直在调试我的应用程序,试图找出所有奇怪的崩溃是从哪里突然发生的。我一直在通过模拟器/调试模式进行调试。和往常一样,当我遇到断点时,我可以看到变量的值(大部分时间)。然后突然,无论我做了什么,我都无法查看变量(顺便说一句,我说的是鼠标悬停,因为某种愚蠢的原因,我的xcode禁用了调试菜单中的所有调试工具)

长话短说,由于完全失去了要做的事情,我决定用发布模式进行调试。现在我可以点击断点并查看变量的内容。更令人困惑的是,现在xcode给了我一个更全面的视图,可以看到我正在“观察”(悬停)的变量

我知道苹果喜欢做不同的事情。但这到底是怎么回事!?有人能打我一巴掌,然后告诉我我不明白的是什么吗?

首先,配置“Debug”和“Release”只是名字,如果你愿意,你也可以把它们命名为“Jon”和“Carla”。它们只是可以修改的配置集的名称,您可以调整它们,例如,“调试”配置不再适合调试。因此,如果您(意外地)在“调试”配置中禁用了生成调试符号,您将得到您所描述的内容

转到“项目”->“编辑活动目标”。选择“构建”选项卡,并在左上角的下拉框中选择“调试”配置。在下面的下拉框中选择“显示所有设置”,并在这两个下拉框旁边的搜索栏中键入“调试”

应设置“生成调试符号”,确保其复选框已设置。“调试符号级别”应设置为“所有符号”。此外,“调试信息格式”应设置为“DWARF with dSYM file”

更改设置后,清理项目(“构建”->“清理”),然后重新构建


希望这能有所帮助。

那么你是说矮人dSYM是关于调试的?是一种调试文件格式。dSYM(调试符号)目录/捆绑包是Apple组织/存储DWARF文件的方式,因此可以将调试符号与二进制文件分开(而不是将调试符号嵌入二进制文件)。分离允许您在不使用调试符号的情况下发布应用程序,但如果您获得了故障日志或需要调试应用程序,您仍然可以使用调试符号。我的项目的Xcode中的调试信息格式设置为DWARF with dsym。这是否意味着我将调试符号发送给客户,他们可以使用它对我的应用程序进行反向工程?@vaddadikardick:不,这种格式的好处是调试符号存储在单独的文件中(YourApp.app.dSYM目录)。但反向工程应用程序并不需要调试符号……它只是让它变得更容易。