无法在XCode中将嵌入式二进制文件(其他项目)添加到项目依赖项中

Ras*_*sto 17 xcode project-management project linker-errors ios

我有一个使用XCode 6.0.1创建的XCode工作区.它拥有2个(Swift)库和一个依赖于这2个库的iOS应用程序(Swift).我有稳定的设置,允许我在iPhone和模拟器上运行iOS应用程序:2个库项目被添加为应用程序的嵌入式二进制文件(见图片).

现在,我有XCode 6.1.最近,我在XCode运行时删除了DerivedData文件夹中的~/Library/Developer/Xcode文件夹.之后我的工作区不起作用 - iOS应用程序将无法编译,我收到链接器错误,说它无法找到库项目.

我试图通过从应用程序项目的嵌入式二进制文件中删除我的2个库来解决它- 我无法将它们添加回去.单击项目设置中嵌入式二进制文件下的+按钮可正确显示工作区项目,但选择和添加库项目不会将它们添加到嵌入式二进制文件列表中.我通过创建新工作区解决了链接器错误.应用程序编译,但它如何链接库对我来说是个谜:它们不在列出的嵌入式二进制文件链接框架和不在框架搜索路径中的中.应用程序和它需要的库之间似乎没有任何关联(显然有编译时),除了库项目在同一个工作区.

为什么我不能将库项目添加到嵌入式二进制文件?在XCode 6.1中,依赖项目是否正常编译并嵌入到应用程序中而不在任何地方列出或链接是否正常?

在此输入图像描述

rjs*_*ing 13

这是我对Xcode在删除"DerivedData"后不会添加"嵌入式二进制"的问题的答案的摘要,请参阅原始问题和答案以获取更多上下文和信息:

  1. 从工作区中删除所有框架项目
  2. 执行"干净构建"和/或删除"DerivedData"
  3. 将项目添加回工作区
  4. 构建项目(可能是可选的)
  5. 在应用目标的"常规"选项卡中,单击"链接的框架和库"下的+ ,选择框架.
  6. 在模拟器中构建和运行(应该没有问题构建或运行)
  7. 构建并运行设备(由于框架未正确链接,可能会导致崩溃,忽略此崩溃)
  8. 单击"嵌入式二进制文件"下的+ ,选择框架.这应该将它添加到项目中(在"链接的框架和库"下可能重复)
  9. 重复所有必需的框架
  10. 确认构建和运行(在设备上)后,您可以删除Project Navigator中的任何重复(和/或红色)框架或目标General选项卡


Hob*_*ige 5

好的,我遇到了和你一样的问题.删除派生数据后,我无法再次重新链接我的二进制文件.我认为原因是因为派生数据是二进制文件在项目中写入和链接的位置.

我要解决的是选择我的框架作为我的构建目标.构建它之后,Framework目标从红色变为黑色.我在你的截图中看到它是红色的,这意味着它没有被编译成二进制文件并写在磁盘上.

一旦我这样做,我就能够将Framework重新链接到我的Project,因为它在磁盘上有一个引用.希望这可以帮助!


Pau*_*nge -3

这可能是因为您的框架是一个单独的项目,而不是一个单独的目标。尝试仔细观看第 416 场会议:构建现代框架,大约第 34-36 分钟。它将向您展示如何正确设置。

如果您想在多个项目之间共享一个框架,这会让您感到有点困惑