XCode无法找到特定iOS库/框架项目的符号

我在一个相当大的iOS项目中遇到了特定库/框架的源代码中的断点问题(Xcode新手 – 我不确定正确的术语是什么)。 我有这个库的所有代码。 断点在其他任何地方都可以正常工作,但在这个特定的库中,所有断点都会被忽略。

我可以在其中一个源文件中调用的函数中放置一个断点,它将触发,但随后callstack显示我感兴趣的文件中的位置“__lldb_unnamed_function”,就好像符号已被剥离一样。

我有相关库的以下设置

Generate Debug Symbols = YES Strip Debug Symbols During Copy = NO Strip Linked Product = NO Dead Code Stripping = NO 

我一直在使用很多#ifdefs来测试一些函数的替代实现,所以我认为有些东西可能会被意外地标记为死代码(因此最后一个设置)。 我已经尝试过清理/重建了。 我尝试从目标iPhone中完全删除应用程序。 我试过删除中间文件夹

 /Library/Developer/Xcode/DerivedData 

代码肯定正在执行,因为我的所有NSLog调用都正确显示。

我对Xcode没有多少经验,所以我希望我只是缺少一些简单的东西

谢谢

构建过程的某些部分必须剥离此二进制文件。 如果您在没有调试信息的情况下生成未被剥离的二进制文件,那么您将在回溯等中看到完整的符号名称,您将无法获得它们的调试信息。

确定谁是这样做的唯一好方法是查看Xcode中的完整构建日志,并展开每个阶段并对所有构建阶段进行grub以确定谁在执行此操作。 您可以通过将鼠标hover在RHS上的每条构建线上来扩展阶段,并且您将获得一个看起来像页面上的一堆行的公开dingus; 单击该按钮以查看实际命令。

另一种精细化的方法可能是为这个框架构建dSYM(通过将调试格式设置为“DWARF + dSYM”。)这应该在任何被剥离之前进行,所以除非剥离它的人是非常聪明的,这应该保留调试信息。