使用不同的构建配置时,Xcode调试器显示空值

8
我决定使用不同的scheme来管理相同应用程序目标的不同PREPROCESSOR定义,这些scheme连接到不同的构建配置。这意味着我复制了Debug构建配置并给它一个新名称(例如Staging)。在之后为每个新的构建配置定义预处理器宏。设置一个新的共享scheme,"运行"步骤使用刚刚创建的新的"Staging"(Debug副本)构建配置。应用程序运行良好,但我注意到调试器值都是nil。当将方案设置为从"Debug"构建配置运行时一切都正常。新的构建配置是Debug的完全副本,并定义了附加的预处理器宏。无论将Debug构建配置重命名为任何其他名称,都会出现这种情况。
有没有办法让调试器与不同的(启用调试)构建配置一起工作?

3个回答

1
你可能启用了该构建方案的优化。当我在我的存档方案中运行应用程序时,就会发生这种情况,因为始终开启了优化。
检查方案的运行配置,并在其中打开调试。(运行->信息->构建配置)

0

我在使用Xcode 6.3.1 (6D1002)时遇到了同样的问题。我有一个配置,精确地复制了默认的“debug”配置,但是偶尔调试器窗口显示空值(而从程序流程中清楚地看到实际上存在值)。我不知道如何解决这个问题,因为每个被问及此问题的人都会让你像一个显而易见的队长一样关闭编译器优化。


0

你是如何设置预处理器宏的?

应该像这样做:

项目 > 选择所需目标 > 构建设置 > 搜索“预处理器宏”> 添加宏 - 我正在使用 PRD_BUILD || BETA_BUILD || DEMO_BUILD || DEV_BUILD

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

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

是的。它是这样配置的,定义在代码流中完美地工作。问题在于我设置了一个特定的构建配置(复制调试),使用该构建配置会导致调试器中出现nil值。 - user3470095

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接