【问题标题】:Xcode build process for linking & embedding framework to app in workspace用于将框架链接和嵌入到工作区中的应用程序的 Xcode 构建过程
【发布时间】:2016-05-12 16:32:14
【问题描述】:

我已将我正在开发的应用程序中的一些功能分离到一个独立的框架中。框架和应用程序都包含在工作区中。如何以与机器无关的方式将此框架包含在我的构建中?

我一直在做的是将框架添加到我的客户端应用程序的嵌入式二进制文件中,正如 SO 上的许多帖子所建议的那样。这很好用,直到您开始在另一台机器上工作,此时无法找到框架所在的随机生成的“DerivedData”目录,您必须重新创建链接。这将成为一个非常令人厌烦的过程。

我曾考虑为此目的使用 CocoaPods,但除非我读错了,否则您不能只使用 podspec 引用本地项目;该项目需要驻留在已知的源/存储库中。

所以基本上我想知道这里的人们是如何打造一个与特定开发机器的目录结构无关的多项目构建过程。

【问题讨论】:

    标签: ios xcode frameworks dependencies build-process


    【解决方案1】:

    所以我找到了一个可行的解决方案。问题是我的客户端应用程序项目引用了相对于项目本身的框架文件。

    我引用(和嵌入)我的框架所采取的最少步骤比我见过的一些解决方案要少得多。

    1. 在我的客户端应用程序的目标中(在“常规”选项卡上),将框架添加到“嵌入式库”部分。这还将向项目导航器添加对框架的引用。
    2. 选择在步骤 1 中添加到项目导航器的引用,并将其位置更改为“相对于已构建产品”。 (可选)将框架移至客户端应用项目的“Frameworks”文件夹,其余框架都存放在该文件夹中。

    第二步确保构建查找相对于构建产品的框架,而不是相对于其他东西,其位置可能因机器/源副本而异。

    【讨论】:

      【解决方案2】:

      实际上,您确实可以拥有私有 Pod。大多数教程都是关于如何做到这一点usually keep these private Pods within private repos on GitHub,但you can also host them on another Git (non-GitHub) server

      至于 DerivedData 目录问题,听起来您正在通过构建设置包含框架(即类似“-framework ~/Library/Developer/Xcode/DerivedData/MyFramework-$$@#$@#@$#/MyFramework.framework”)。

      您应该能够简单地单击应用目标设置的“构建阶段”部分,然后单击“添加”(或“+”)按钮,您将看到您的(通过同一工作区构建)框架或您可以添加该列表中的库。 More information can be seen in this Apple documentation.

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-07-10
        • 1970-01-01
        • 1970-01-01
        • 2013-07-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多