使用外部构建的静态库和Xcode4

时间:2012-09-05 14:10:43

标签: ios xcode4 autotools

我有一个大型(数千个文件)产品,我正在移植到iOS。我有一个现有的构建结构,构建了大约50个静态库,然后可以由特定于平台的[G] UI使用。一些库是第三方工具,如zip,ICU和Xerces。可移植构建过程由GNU autotools管理,我创建了一些shell脚本来构建i386(模拟器),armv6和armv7的代码。所有这一切都在Apple的Lion上使用5.1 iOS SDK和Xcode4完成。

我遇到的问题是将这些库引入Xcode4项目是一件痛苦的事。拖放图书馆很繁琐。我一直在为Xcode中的库创建一个“项目”,因为我已经有了一个可以运行的跨平台构建系统。我想用一种“简单”的方式来输入库列表及其位置;我在这里的搜索显示了Xcode3的解决方案,但它们似乎不适用于Xcode4。

我能够构建一个使用这些库的iOS应用程序,但我的问题的主旨是:我如何避免所有拖放和保留我的可移植构建结构,以便其他人使用我的库不会撕裂他们的头发了吗?如果这是一个仅限iOS的应用程序,我当然只会使用Xcode4。但由于它是多平台和“便携式”,我真的希望保持流程简单,“简单”既适用于包装的维护,也适用于使用我的库的用户/开发人员。

另一个问题可能是:我是否有一种安全的方式来生成Xcode4元文件,以便我的autotools-driven-build的最终结果看起来像是一个原生的Xcode4项目?

1 个答案:

答案 0 :(得分:1)

两个想法:

1)Xcode很好地支持AppleScript - 我用AppleScripts做这样的任务。尽管如此,Xcode 4的早期版本仍然缺乏这种支持。不确定是否可以使用4.4 - 您可能会在Apple的listserv组的AppleScript实现者列表中询问。

2)如果您将所有库(或可能是链接)放入一个文件夹,那么在Xcode中单击Target,BuildPhase,Link Binary with Libraries,点击+键,导航到您的文件夹,然后选择所有库和点击确定,你已经完成了。 [好吧,差不多,然后在左边的GUI窗格中你需要再次选择它们并将它们移动到Frameworks文件夹中,由于这个烦人的bug,我一直处于我的项目的顶端。]