iOS静态库+预处理标头

时间:2011-07-13 14:42:34

标签: ios objective-c xcode c-preprocessor static-libraries

我正在为iOS(.a文件)构建一个静态库,我有多个应该可公开访问的标头。我目前有3个标题和#Imports all 3的第4个标题,但这仍然意味着当我分发它时,我有多个标题文件。

有没有办法让Xcode自动复制并粘贴#import语句在框架/库编译时所在的头部内容,因此位于库旁边的1头包含3个其他头文件的内容而不是3 #import声明? (即在不编译的标题上运行预处理器)

我每次都可以手动复制和粘贴,但我太懒了; P。

2 个答案:

答案 0 :(得分:2)

您可以向库目标添加“运行脚本构建阶段”,这样每次构建库时,shell脚本都可以将这三个文件附加到一个通用文件中。

有关Xcode 3.x的更多信息,请查看this

在Xcode 4中,它是类似的。您选择目标,然后选择Build Phases选项卡,然后您可以将脚本放在“Run Script”下。

答案 1 :(得分:1)

最简单的解决方案是首先不要有三个头文件,而只使用一个带有公共API的头文件。

这可能不是您用来组织代码的方式,但它有效。如果静态库的用户可以使用单个文件,那么静态库项目也可以。它可以省去手动合并或摆弄XCode,shell脚本和构建阶段的麻烦。