Xcode:将项目添加为构建依赖项

56

我正在尝试使用soundcloud api,在其说明中指出:

  • 将 SoundCloudAPI.xcodeproj 拖入您的项目中
  • 将其添加为构建依赖项

拖动项目非常容易,但如何完成下一步呢?


7
最新版本的xCode是否支持这个功能?我遇到了之前从未遇到过的问题,它只是添加了文件而不是项目。 - Richard J. Ross III
你应该将这个问题作为一个单独的问题来询问。我已经有一段时间没有看过这个了,然而,在最新版本的xCode中,你有一个工作区的概念,它可以由多个项目组成,请查阅相关资料。 - Aran Mulholland
2
这里有一些关于如何在较新版本的Xcode中添加静态库依赖项的逐步说明。 - filitchp
1
@RichardJ.RossIII 请确保您要添加的项目没有在XCode中打开。如果在XCode中打开,它只会添加.xcodeproj文件,而不是整个项目。 - Dog
这个回答解决了你的问题吗?Xcode 4.2如何将一个项目包含到另一个项目中? - Top-Master
显示剩余2条评论
7个回答

29

如何将其添加为依赖项:

  • 在 Xcode 的文件浏览器中选中已添加的项目。在右侧的目录浏览器窗口中,应该显示一个带有 .a 扩展名的文件。在目标列(目标图标)下面有一个复选框,请勾选它。
  • 右键单击目标(文件浏览器中的目标项下方),然后选择“获取信息”
  • 在常规选项卡上是直接依赖项部分。点击加号按钮
  • 选择项目,然后点击添加目标

第一步你有什么想法? - Aran Mulholland
1
很奇怪,Xcode不让我添加直接依赖项。我该怎么办? - Herberth Amaral
2
我已经尝试过了,但它不起作用。我需要的框架仍然是红色的,就像它们丢失了一样。 - Eric Brotto
4
这些说明让我感到困惑,因为我相当确定它们是针对旧版本的Xcode。请参考@ filitchp的答案,其中包含适用于Xcode 5的说明链接。 - Liron Yahdav
3
如果你已经在Xcode中打开了.xcodeproj文件,那么在试图添加它之前请记得关闭它。如果同一个项目已经在另一个窗口中打开,则无法深入到文件结构中,也无法添加嵌套项目的.framework文件。如果你关闭所有Xcode实例,然后只重新打开一个项目,就可以实现添加了。 - Lucas van Dongen
显示剩余3条评论

14

对于像我这样的新手来说,这是一个难题 - 这里有一张截图描述了它。
Xcode 10.2.1

在此输入图像描述


太好了,Xcode 12也是一样的!只需拖动您的 *.xcodeproj 文件,取消复制选项,并使用 + 按钮将其作为依赖项添加(可以在屏幕截图所示的步骤中找到)。 - Top-Master

13
  1. 在左侧的导航器中选择您的项目。
  2. 展开中间窗格中的抽屉并选择您的目标。
  3. 选择“构建阶段”。
  4. 此时,“目标依赖项”是一个选项。

4
在您的项目中的 TARGETS 下,右键单击您的项目目标 (应该与您的项目名称相同) ,然后选择 GET INFO,接着在 GENERAL 选项卡下您将看到 DIRECT DEPENDENCIES,只需点击 [+] 并选择 SoundCloudAPI

3
只需关闭所需添加的项目,然后将文件拖放即可。

3

Xcode 添加一个项目作为依赖项

Xcode 10

  1. 拖放一个项目到另一个项目中 - 称为 跨项目引用[关于]
  2. 将添加的项目作为构建依赖项 - 称为 显式依赖项[关于]
//Xcode 10
Build Phases -> Target Dependencies -> + Add items 

//Xcode 11
Build Phases -> Dependencies -> + Add items 

在“选择要添加的项”对话框中,您将只看到来自您的项目和子项目的目标。

enter image description here


2
无法找到Build Phases -> Target Dependencies,但我可以在xcode 11.3中看到Build Phases -> Dependencies。 - krithi k

0
今天我遇到了同样的问题。 第一次运行的结果是出现了以下错误:
Lexical or Preprocessor Issue: 'SDKProjectName*/*SDKProjectName.h'文件未找到。
但在运行之前,我显然已经将我的SDK添加到演示项目中,只需将.xcodeproj文件拖放到我的测试项目的源树中即可。之后,我进入主xcodeproj文件(演示文件)的设置中的Build Phases选项卡,并将我的SDK添加为目标依赖项并嵌入框架到相应的选项卡中。
但结果还是出现了上述错误!
所以,问题出在Header Search Paths选项中的空行上。我只需将"../**"作为此键的值进行编写,项目就可以成功编译。因此,在包含此SDK的任何项目中,您都可以添加#include 。
附:我的测试应用程序是创建在根SDK文件夹中的。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接