【问题标题】:iOS static library + preprocessed headersiOS 静态库 + 预处理标头
【发布时间】:2011-07-13 14:42:34
【问题描述】:
我正在为 iOS(.a 文件)构建一个静态库,并且我有多个应该可以公开访问的标头。我目前有 3 个标头和第 4 个标头,#imports all 3,但这仍然意味着当我分发它时,我有多个头文件。
有没有办法让 Xcode 在框架/库编译时自动复制并粘贴 #import 语句所在的标头的内容,因此位于库旁边的 1 个标头包含其他 3 个标头的内容,而不是3 #import 语句? (即在它不编译的头文件上运行预处理器)
我总是可以每次手动复制和粘贴,但我太懒了;P.
【问题讨论】:
标签:
ios
objective-c
xcode
c-preprocessor
static-libraries
【解决方案1】:
您可以在库目标中添加“运行脚本构建阶段”,这样每次构建库时,shell 脚本都可以将三个文件附加到一个通用文件中。
查看this 了解有关 Xcode 3.x 的更多信息。
在 Xcode 4 中,它是类似的。您选择您的目标,然后选择 Build Phases 选项卡,然后您可以将您的脚本放在“运行脚本”下。
【解决方案2】:
最简单的解决方案不是一开始就拥有三个头文件,而是只有一个带有公共 API 的头文件。
这可能不是您用来组织代码的方式,但它确实有效。如果您的静态库的用户可以使用单个文件,那么您的静态库项目也可以。它为您省去了手动合并或摆弄 XCode、shell 脚本和构建阶段的麻烦。