当使用不同的构建配置时,Xcode调试器值为nil



我决定使用连接到不同构建配置的不同方案来管理相同应用程序目标的不同PREPROCESSOR定义。这意味着我已经复制了Debug构建配置并给了它一个新名称(例如Staging)。Afterwords定义了针对每个新构建配置定义的预处理器宏。设置一个新的共享方案,"运行"步骤使用我刚刚创建的新的"分段"(调试副本)构建配置。应用程序运行良好,但我注意到调试器值都是nil。当将方案设置为从"Debug"构建配置运行时,一切都很好。新的构建配置是调试配置的完整副本,并定义了一个额外的预处理器宏。当将Debug构建配置重命名为其他配置时,也会发生这种情况。

是否有任何方法可以让调试器与不同的(调试启用)构建配置一起工作?

您可能已经为该构建方案启用了优化。当我在存档方案中运行我的应用程序时,它总是打开优化。

检查方案的运行配置并在其中打开调试。(Run -> Info -> Build Configuration)

如何设置预处理器宏?

你应该这样做:

项目>选择需要的目标>构建设置>搜索'预处理器宏'>添加宏-我使用PRD_BUILD || BETA_BUILD || DEMO_BUILD || DEV_BUILD

然后你必须检查你实际在运行什么:

#if PRD_BUILD || BETA_BUILD || DEMO_BUILD
 code
#elif STG_BUILD
code
#else
code
#endif

我在Xcode 6.3.1 (6D1002)中遇到了同样的问题。我有一个精确复制默认"调试"配置的配置,但是不时地调试器窗口显示nil值(虽然从程序流中可以清楚地看到实际存在的值)。我不知道如何解决这个问题,因为每个被问及这个问题的人都会像船长一样关闭编译器优化。

最新更新