删除“DerivedData”后,Xcode不会添加“嵌入式二进制文件”

帮助搜索的其他标题:

  • 在Xcode中添加嵌入式二进制文件失败
  • Xcode不会链接来自单独项目的框架
  • 由于缺少框架,应用程序在设备上崩溃,在模拟器中工作

概观

在xcode6中删除“DerivedData”文件夹(或执行“Product> Clean”) 之后 ,我无法将CocoaTouch框架从另一个项目添加到“Embedded Binary”部分(在General选项卡下)。

或者,Xcode遇到链接器错误,因为它找不到以前可能的框架。

其他症状

单击“嵌入式二进制文件”下的+显示框架选择器,但在工作区中选择不同项目中的框架不会执行任何操作。

将框架添加到嵌入式二进制文件时 ,将为您的项目添加一个引用。 如果您在上面的步骤之后选择了该引用,您可能会发现它具有对框架的绝对路径引用而不是我们想要的相对引用。 将位置更改为相对于构建产品 ,如果“硬”清理或使用其他计算机等,则应始终可以发现引用。

我制作了一个video ,描述了如何最好地将一个项目中的构建框架添加到另一个兄弟项目中的app目标。

这是我发现恢复嵌入式二进制文件的唯一方法,如果您发现不需要某些步骤,请留下评论。

先决条件:阅读Daniel Tull的回答 。

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

只是添加到@ Daniel的答案,如果您的位置下拉列表显示为灰色,则表示您可能选择了错误的文件。 确保选择应用程序项目中的框架(而不是框架项目)。

在此处输入图像描述