iphone - 子项目的 Xcode 环境变量

标签 iphone ios xcode environment-variables

我当前的 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/

相关文章:

ios - 如何在 iOS 6 模拟器中自定义运营商名称?

ios - 在不成为最终部署者的情况下验证 Xcode 存档

ios - iTunes - iTunes 需要多长时间来更新商店中新发布的应用程序版本

ios - 核心数据一对多关系

iPhone - 使用游戏中心的在线多人游戏教程

ios - 如何通过 AVAssetExportSession 设置 AVFileTypeMPEG4 文件的元数据?

javascript - 无法重现 TypeError : 'undefined' is not an object

objective-c - 管理 iDevices 上的文件

json - 使用 Facebook iOS SDK 时 PhoneGap 和 SBJSON 重复冲突

iphone - iOS 上的当前系统时间