如何将私有框架添加到目标依赖项?

10
我正在尝试使用XCode 4将私有框架(最后一段)嵌入到我的应用程序包中,按照苹果(看起来)过时的说明操作。
在我的情况下,我正在为每个目标使用单独的Xcode项目。这是最后一步:
在检查器窗口的“常规”选项卡中,将您的框架添加为应用程序的依赖项。添加此依赖关系会导致Xcode在构建应用程序之前构建框架目标。
您在应用程序目标中建立的构建依赖关系会导致在应用程序之前构建框架。这很重要,因为它保证了可以链接和嵌入应用程序的已构建框架版本可用。由于存在此依赖关系,您可以将Xcode项目的活动目标设置为应用程序并将其保留在那里。现在构建应用程序会构建框架并将其复制到应用程序包目录中,从而创建两者之间必要的链接。
当我在目标依赖项中单击+按钮时,框架不会显示出来。我该如何在Xcode 4中建立私有框架和应用程序目标之间的构建依赖关系? 编辑:我应该澄清,我已经让私有框架工作了。我只想避免每次更改框架时都要清理项目,并确保在应用程序目标之前构建框架。

1
是的,将框架目标添加为依赖项正是我想要做的。@srinaidu正在重复之前的步骤。这不是我要求的。我已经让链接工作了,现在我想解决依赖关系。 - hpique
1
我为每个目标单独创建了一个Xcode项目。 - hpique
你可以尝试创建一个工作区,将你的项目放入其中,看看是否能够添加目标依赖项。如果你创建了一个工作区,请打开方案编辑器,看看是否能够在应用程序项目之前构建你的框架项目。如果这样还不行,你就需要为你的应用程序项目添加一个目标框架。 - Swift Dev Journal
1
我有一个工作区。我尝试过使用单独的项目和子项目。但是两种选项都没有显示在目标依赖项中。 - hpique
请查看Tomte的答案,它运行良好:https://dev59.com/_mIk5IYBdhLWcg3we-L5#22608840 - BoygeniusDexter
显示剩余5条评论
5个回答

12

通过将私有框架项目作为子项目添加,然后在Target Dependencies中添加框架目标,成功解决了该问题。

然而,在我的情况下,直到我删除DerivedData之前,框架目标才在Target Dependencies中显示为选项。这个可恶的小错误让我抓狂。


我刚刚关闭了工作区并重新打开它,然后就能将目标添加为依赖项了。这里有一个关于该过程的好教程:http://pymatics.com/2011/12/23/tutorial-develop-a-private-framework-for-your-mac-app-using-xcode-4s-workspace-feature - GTAE86
虽然现在Xcode可以自动解决依赖关系,但是让其他人浏览你的项目时知道你的应用程序依赖于其私有框架仍然是很好的。 - Motti Shneor
1
关键在于将私有框架项目添加为子项目,之后私有框架的目标将出现在“目标依赖项”菜单中。 - Wayne

2
如果您希望添加自己的私有框架而不将其包含为子项目,则必须为其添加一个复制文件任务:

Copy Files task

使用+按钮选择您的框架,并在目标中选择Frameworks
您不需要在目标依赖项中添加任何内容。
此外,为了使其正常工作,请确保运行路径搜索路径值在构建设置选项卡中为@executable_path/Frameworks

0

你首先需要将其他项目的 .xcodeproj 添加为子项目:

  1. 右键单击 Frameworks 组(或其他位置)
  2. 选择 Add Files to "<Project>..."
  3. 选择其他项目的 .xcodeproj
  4. 现在,那个其他项目的目标将显示在 Target Dependencies 菜单中

0

这里是更完整的答案,包括 Xcode 12+ 的更新。

  1. 将第三方框架复制到您的项目文件夹中。
    它可以在同一项目树中的任何位置。您将在后面的步骤中需要路径信息。

  2. 在Xcode中,选择您的构建目标,然后选择“常规”选项卡,向下滚动到“框架、库和嵌入式内容”,然后选择“+”以浏览并选择要添加的第三方库/框架。如下所示:
    enter image description here

  3. 添加后,请确保选择“嵌入并签名”下拉列表中的要添加的库/框架。
    这很重要,因为该框架将在运行时被查找和加载。

  4. 转到“构建设置”选项卡,找到“框架搜索路径”,并输入相对于您的Xcode项目文件位置的框架路径。如下所示:
    enter image description here

现在你可以使用新增的框架来构建和运行你的应用程序。


0
在Xcode中选择您的项目,然后您可以在右侧找到项目和目标。然后选择目标并转到“链接二进制文件和库”,然后会出现一个窗口,在左下角有一个名为“添加其他”的选项。

那是一个先前的步骤,没有它框架就无法工作。我已经让框架运行起来了。现在我想确保应用程序目标之前先构建框架。 - hpique

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