【问题标题】:Using externally built static libraries with Xcode4在 Xcode4 中使用外部构建的静态库
【发布时间】:2012-09-05 14:10:42
【问题描述】:

我有一个大型(数千个文件)产品要移植到 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 项目?

【问题讨论】:

    标签: ios xcode4 autotools


    【解决方案1】:

    两个想法:

    1) Xcode 过去对 AppleScript 的支持非常好——我过去常常用 AppleScripts 来完成这样的任务。不过,Xcode 4 的早期版本非常缺乏这种支持。不确定您是否可以使用 4.4 执行此操作 - 您可能会在 Apple 的 listserv 组的 AppleScript 实施者列表中询问。

    2) 如果您将所有库(或链接)放在一个文件夹中,然后在 Xcode 中单击 Target、BuildPhase、Link Binary with Libraries,点击 + 键,导航到您的文件夹,然后选择所有库并点击确定,您就完成了。 [嗯,差不多,然后在左侧的 GUI 窗格中,您需要再次选择它们并将它们移动到 Frameworks 文件夹中,由于这个烦人的错误,我将其保留在我的项目的顶部。]

    【讨论】:

    • 您的第 2 步听起来很有希望;当它们是“原始”档案时,可以将它们塞进框架中吗?
    • 是的 - 你可以在那里混合库和框架 - 当你点击 + 按钮时,你会看到。这实际上是我添加新框架/库的方式。
    • 谢谢;看起来您实际上需要选择“目标”而不是“项目”才能进入“构建阶段”。也许 AppleScript 是未来的选择;目前看来这是唯一的方法。
    猜你喜欢
    • 2011-07-24
    • 2018-10-05
    • 1970-01-01
    • 1970-01-01
    • 2013-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-02
    相关资源
    最近更新 更多