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


75

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

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

拜托,有人可以一步一步地向我解释将一个XCode项目添加到另一个项目中需要做什么吗?我已经看到了很多像“标题搜索路径”这样的衬里,但这并不能告诉我太多。

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

谢谢!

Answers:


140

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

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

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

建造阶段

您将需要将另一个项目添加到“目标依赖项”和“与库链接二进制文件”部分。

最后,应用程序需要注意您的标头。因此,您需要将静态库类的路径添加到用户标题搜索路径。转到主要目标的构建设置,然后搜索标题搜索路径。

标头搜索路径

这将使您的应用知道新的静态库。

有时您需要添加一些其他链接器标志。在构建设置中搜索其他链接器标记,然后添加-all_load-ObjC

其他链接器标志

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


如果此帖子有帮助,请标记为答案。:)让我知道您是否有任何疑问。
MobileOverlord '02

23
伙计们,重要的细节是:您拖动的项目不应在Xcode中打开。万一有人和我面临同样的问题。:)
inket

1
@MobileOverlord您可以更新此帖子吗?您的说明非常有帮助,但对于XCode 6似乎并不准确。当我在“构建设置”中搜索用户标题搜索路径时,我只能找到“始终搜索用户路径”
2015年

@sunny您需要确保在构建设置中显示“全部”选项,而不仅仅是“基本”选项。您可能已设置为基本。我将检查并更新屏幕截图。
MobileOverlord 2015年

1
@MobileOverlord如果要与其他开发人员在回购中共享标头路径,如何保持标头路径相对?
纽约市技术工程师

5

添加或删除项目之前,请确保要添加为子项目的项目没有打开。


1
谢谢!这对我来说是个救生员。
Vibhor Goyal

@VibhorGoyal不客气,前段时间我也为此感到挣扎:)。
JP Illanes

4

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

然后,您可能需要根据需要添加目标依赖关系。

你是这个意思吗?


我问的部分原因是因为我尝试将.xcodeproj拖到上面,而它没有复制所有子文件夹。更糟糕的是,当我尝试删除.xcodeproj尝试再次拖动它时,我不小心从磁盘上删除了.xcodeproj!那真是有趣的一天。。。不是
Alex Stone

这是因为XCode项目存储对文件的引用,而不是实际副本。这就是为什么删除文件实际上是从磁盘删除原始文件的原因。而且,由于仅存储引用,因此不必复制子文件夹(仅在项目中引用了子文件夹时)。
JiaYow 2012年

Alex,开始使用github或某些svn服务。这样,您就不会迷路,可以玩耍。
马修·弗格森

4

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



0

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

  1. Explicit dependency[关于]通过创建target dependencycross-project reference[关于]
  2. Implicit dependency[关于]如果源代码是相同的一部分Workspace[关于]
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.