Xcode 4:在依赖目标中定义预处理器宏

Jul*_*ien 6 objective-c static-libraries xcode4 c-preprocessor

我有一个名为MyApp的应用程序链接到静态库MyLibrary 我已将MyLibrary项目添加到Xcode,并将MyLibrary目标添加到MyApp的目标依赖项中.这一切都很好,我可以设置断点,我很高兴.

问题是我想在库中有条件的日志:

#ifdef DEBUG
#   define  MYDebug(msg, ...) NSLog(@"\nDEBUG -> %@ \n(%s:%d)",[NSString stringWithFormat:msg, ## __VA_ARGS__], __PRETTY_FUNCTION__,__LINE__);
#else
#   define MYDebug(msg, ...)
#endif
Run Code Online (Sandbox Code Playgroud)

所以我的库有两个构建配置: - 调试在"预处理器宏"的目标构建设置中有"DEBUG = 1" - Prod什么都没有

并且MyLibrary目标设置为使用Debug构建配置构建.

如果我构建静态库(.a)并将其包含在项目中,这可以正常工作.但是如果它是由目标依赖构建的,那么似乎没有定义DEBUG(MYDebug不记录任何东西).

我也尝试在MyApp的构建设置中设置DEBUG = 1 ,但它不起作用.

有什么我错过了,或其他方式做到这一点?

cho*_*own 8

它应该只是"DEBUG"而不是"DEBUG = 1".此外,以使用需要一个对象分配一个宏(的NSString等),你需要逃脱最喜欢的人物@"等.

以下是xCode 4.1中我的工作项目的屏幕截图:

在此输入图像描述