如何在 Xcode Profiling and Archiving Builds 中设置 DEBUG 和 NDEBUG 宏?
Posted
技术标签:
【中文标题】如何在 Xcode Profiling and Archiving Builds 中设置 DEBUG 和 NDEBUG 宏?【英文标题】:Howto set DEBUG & NDEBUG macros in Xcode Profiling and Archiving Builds? 【发布时间】:2012-05-28 23:54:33 【问题描述】:在 Xcode(当前版本 4.3.2)中,我为调试和发布版本设置了 DEBUG 和 NDEBUG 宏定义,因此我可以选择性地使用 ObjC 预处理器包含调试代码。
问题:当我选择 Product --> Build For --> Archiving 时,既没有定义 DEBUG 也没有定义 NDEBUG。我对 Product --> Build For --> Profiling 有类似的问题。
问题:如何在 xcode 中为存档和分析构建正确设置 DEBUG 和 NDEBUG,这样我的条件代码包含(预处理器)宏不会中断?
我目前在发送到 AppStore 之前存档构建的解决方法是暂时删除 DEBUG 代码;但这不是一个好习惯,即使我受到 git 的源版本控制系统的保护。
【问题讨论】:
【参考方案1】:尝试将您的定义添加到
"Preprocessor Macros Not Used in Precompiled Headers"
改为
"Preprocessor Macros"
【讨论】:
【参考方案2】:检查构建设置以确保在调试和发布模式下都定义了宏。
例如: - 对于调试模式:NDEBUG=0 和 DEBUG=1 - 对于发布模式:NDEBUG=1 和 DEBUG=0
【讨论】:
这很糟糕,因为两者都会被定义。如果您“#define DEBUG=0”,“#if DEBUG”将返回 FALSE,但“#ifdef DEBUG”将始终返回 TRUE,因为它已定义,无论它具有什么值。以上是关于如何在 Xcode Profiling and Archiving Builds 中设置 DEBUG 和 NDEBUG 宏?的主要内容,如果未能解决你的问题,请参考以下文章