如何设置调试&;Xcode评测和归档构建中的NDEBUG宏?

如何设置调试&;Xcode评测和归档构建中的NDEBUG宏?,xcode,configuration,build,profiling,archiving,Xcode,Configuration,Build,Profiling,Archiving,在Xcode(当前版本为4.3.2)中,我为调试和发布版本设置了调试和NDEBUG宏定义,因此我可以有选择地使用ObjC预处理器包含调试代码 问题:当我为-->归档选择产品-->构建时,既没有定义调试也没有定义NDEBUG。我在产品-->构建用于-->评测方面也有类似的问题 问题:如何在xcode中为存档和分析构建正确设置调试和NDEBUG,以使我的条件代码包含(预处理器)宏不会中断 我目前在将构建发送到AppStore之前归档的解决方法是临时删除调试代码;但这不是一个好的做法,即使我受到git

在Xcode(当前版本为4.3.2)中,我为调试和发布版本设置了调试和NDEBUG宏定义,因此我可以有选择地使用ObjC预处理器包含调试代码

问题:当我为-->归档选择产品-->构建时,既没有定义调试也没有定义NDEBUG。我在产品-->构建用于-->评测方面也有类似的问题

问题:如何在xcode中为存档和分析构建正确设置调试和NDEBUG,以使我的条件代码包含(预处理器)宏不会中断


我目前在将构建发送到AppStore之前归档的解决方法是临时删除调试代码;但这不是一个好的做法,即使我受到git源代码版本控制系统的保护。

尝试将您的定义添加到

"Preprocessor Macros Not Used in Precompiled Headers"
反而

"Preprocessor Macros"

检查生成设置以确保宏在调试和发布模式下都已定义

例如:
-对于调试模式:NDEBUG=0和Debug=1

-对于发布模式:NDEBUG=1和DEBUG=0,这是错误的,因为这两种模式都将始终定义。如果“#define DEBUG=0”,则“#If DEBUG”将返回FALSE,但“#ifdef DEBUG”将始终返回TRUE,因为它是已定义的,无论它具有什么值。