我当前的 Xcode iOS 项目使用了很多静态库。静态库中的不同代码模块具有不同级别的调试,我可以使用该模块中的#defines 打开/关闭这些调试。
我想要做的是在库中将所有调试默认设置为关闭,然后从父项目设置调试级别。我想这样做,所以任何使用该库的项目都必须显式打开调试。
因此 MainProj 使用 myLib1 和 myLib2 等。在 myLib1 中有一个名为 fooModule 的模块。 fooModule 具有调试代码,例如:
#if FOOMODULE_DEBUG_LEVEL > 0
//debug code, console logs etc
#endif
我希望能够在父项目中定义 FOOMODULE_DEBUG_LEVEL,以便库在构建时选择它并进行适当的编译。
我试过:
#define FOOMODULE_DEBUG_LEVEL 1
在主工程.pch 并且我尝试将 FOOMODULE_DEBUG_LEVEL 添加为用户定义的环境变量,值为 1。子项目 lib 都没有选择这两个变量。
有没有办法做到这一点,还是我以错误的方式处理了这个问题?
最佳答案
您可以通过创建 xcconfig 文件然后在整个项目中引用或#include
-ing 来在没有多个定义的情况下完成此操作。因此,您可以应用 Mattias 的建议,然后在 xcconfig 中定义预处理器定义。然后你有一个文件要更改(如果你需要 pch 文件中的这些 defs,还有一个完整的重建,有单独的设置)。
xcode 还允许您为每个构建配置分配单独的 xcconfigs。
关于iphone - 子项目的 Xcode 环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7556558/