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 如何将一个项目包含到另一个项目中?的主要内容,如果未能解决你的问题,请参考以下文章
将 Localizable.Strings 从一个项目复制到另一个项目