Xcode 4.2 如何将一个项目包含到另一个项目中?

Posted

技术标签:

【中文标题】Xcode 4.2 如何将一个项目包含到另一个项目中?【英文标题】:Xcode 4.2 how include one project into another one? 【发布时间】:2012-03-11 08:20:50 【问题描述】:

我一直在搜索,但找不到关于如何将一个 XCode 项目及其所有子类包含到另一个项目中的清晰简单的解释。我经常在示例中看到类似的内容我从网上下载的项目,但自己不知道如何做。

在 XCode 中,除了 .h 和 .m 文件以及文件夹之外,还有一个全新的项目,从一个蓝色的 xcode 项目图标开始,它可以扩展以包含项目中的所有内容。

请问,有人可以逐步向我解释将一个 XCode 项目添加到另一个 XCode 项目中需要做什么吗?我见过很多像“标题搜索路径”这样的衬线,但这并不能告诉我太多。

更新:重新阅读文档后,我意识到要包含的项目必须拖到父项目的蓝色项目图标上。 常规源可以拖动到任何地方,但项目必须被拖到一个项目上。

谢谢!

【问题讨论】:

【参考方案1】:

您可以将任何 xcode-project 文件 (*.xcodeproj) 拖放到所需父项目的项目导航窗格中。

然后您可能需要添加目标依赖项,具体取决于您的需要。

你是这个意思吗?

【讨论】:

我问的部分原因是因为我尝试将 .xcodeproj 拖过来,但它没有复制所有子文件夹。更糟糕的是,当我试图删除 .xcodeproj 以再次尝试拖动它时,我不小心从磁盘中删除了 .xcodeproj!那是一个有趣的一天......不是 这是因为 XCode 项目存储对文件的引用,而不是实际的副本。这就是为什么删除文件实际上是从磁盘中删除了原始文件。而且由于只存储引用,因此不一定要复制子文件夹(仅当它们在项目中被引用时)。 Alex,开始使用 github,或者一些 svn 服务。这样你就不会输并且可以玩。【参考方案2】:

当您尝试将静态库添加到您的 xcode 项目时,这很有意义。执行此操作需要几个步骤。首先,确保静态库项目在 XCode 中打开。

然后首先将静态库 xcodeproj 文件(来自 Finder)拖放到您应用的 xcode 项目中。

在此之后,您需要将此库添加到应用的构建阶段。单击主项目,然后选择目标的 BuildPhases 选项卡。

您需要将另一个项目添加到 Target Dependencies 和 Link Binary With Libraries 部分。

最后,应用需要了解您的标题。因此,您需要将静态库类的路径添加到用户标题搜索路径中。转到 Main Target 的 Build Settings 并搜索 Header Search Path。

这将使您的应用了解新的静态库。

有时您需要添加一些其他链接器标志。在 Build Settings 中搜索 Other Linker Flags 并添加 -all_load-ObjC

希望这会有所帮助,我知道我第一次尝试这样做时,我的头撞到了墙上一段时间。

【讨论】:

如果这篇文章有帮助,请标记为答案。 :) 如果您有任何问题,请告诉我。 重要细节,伙计们:您正在拖动的项目不应该在 Xcode 中打开。万一有人遇到和我一样的问题。 :) @MobileOverlord 你能更新这篇文章吗?您的说明非常有帮助,但对于 XCode 6 似乎并不准确。当我在构建设置中搜索用户标头搜索路径时,我只能找到“始终搜索用户路径” @sunny 您需要确保在构建设置中显示“全部”选项,而不仅仅是“基本”选项。您可能设置为基本。我将浏览并更新屏幕截图。 @MobileOverlord 如果您要在 repo 上与其他开发人员共享,您将如何保持标头路径的相对性?【参考方案3】:

将 xcode 文件从 finder 拖放到另一个 xcode 文件。 它会要求您复制文件,然后选中复选框,它将复制到您的项目中。

【讨论】:

【参考方案4】:

确保选择“创建组”而不是“创建文件夹引用”。如果您的文件夹是蓝色而不是黄色,那么您有一个文件夹参考。文件夹应该是黄色的。

【讨论】:

【参考方案5】:

在添加或删除它之前,确保您要添加为子项目的项目未打开。

【讨论】:

谢谢!这对我来说是救命稻草。 @VibhorGoyal 不客气,我前段时间也遇到过这个问题:)。 此外,请确保您没有打开另一个 Xcode 项目,而 将您想要的子项目用作子项目。这与打开子项目本身相同,并且会阻止该过程成功。【参考方案6】:

您有两种变体可以将源代码添加到您的项目中:

    Explicit dependency[About] 通过使用 cross-project reference[About] 创建 target dependency Implicit dependency[About] 如果源代码是同一 Workspace[About] 的一部分

【讨论】:

以上是关于Xcode 4.2 如何将一个项目包含到另一个项目中?的主要内容,如果未能解决你的问题,请参考以下文章

将 Xcode 项目集成到另一个项目中

将 Localizable.Strings 从一个项目复制到另一个项目

如何将文件从一个项目导入到另一个项目

@IBOutlet和@IBAction指的是错误的项目,如何摆脱那些引用?

如何将 XIB 复制到另一个项目?

将 xcode 项目 4.2 迁移到 xcode 7.0