xcconfig: Different preprocessor macros for Debug/Release

霸气de小男生 提交于 2019-12-05 13:46:41
dogsgod

If you have a preprocessor macro you need to give it a value to be able to use it as you do, see a screenshot of one of my project setups as a sample:

The reason why you can access DEBUG is difference is the different behaviour between #if and #ifdef. #if will be true when the macro exists, #ifdef if it has a non zero value. I suggest to always assign the value one to be save, because I'm not sure the above is true for all compiler versions.

UPDATE:
Did not know that before, but it seems config=Debug does not work. Although the macros get visible in the settings, they do not inherit up. What does work is 2 xcconfig files similar to this:

Release.xcconfig:

GCC_PREPROCESSOR_DEFINITIONS = $(inherited) FOORELEASE=1

Debug.xcconfig

#include "Release.xcconfig"
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) FOODEBUG=1

Please also see James Moores answer here: How to append values in xcconfig variables?

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!