首页 文章

删除“DerivedData”后Xcode不会添加“Embedded binary”

提问于
浏览
12

Alternative titles to aid search:

  • 在Xcode中添加嵌入式二进制文件失败

  • Xcode不会链接来自单独项目的框架

  • 由于缺少框架,应用程序在设备上崩溃,在模拟器中工作

概述

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

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

其他症状

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

3 回答

  • 7

    将框架添加到 Embedded Binaries 时,将为您的项目添加一个引用 . 如果您在上面的步骤之后选择了该引用,您可能会发现它具有对框架的绝对路径引用而不是我们想要的相对引用 . 将位置更改为相对于构建产品,如果执行"hard"清理或使用其他计算机等,则应始终可以发现引用 .

    我有made a video,它描述了如何最好地将一个项目的构建框架添加到另一个兄弟项目中的app目标 .

  • 45

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

    Prerequisites: 阅读Daniel Tull's answer .

    • 从工作区中删除所有框架项目

    • 执行 "clean build" 和/或删除"DerivedData"

    • 将项目添加回工作区

    • 构建项目(可能是可选的)

    • 在应用目标的常规选项卡中,单击下 "Linked Frameworks and Libraries" ,选择框架 .

    • 在模拟器中构建并运行(应该没有问题构建或运行)

    • 构建并运行设备(由于框架未正确链接,可能会导致崩溃,忽略此崩溃)

    • 单击 "Embedded Binaries" 下,选择框架 . 这应该将它添加到项目中(可能在"Linked Frameworks and Libraries"下重复)

    • 重复所有必需的框架

    • 确认构建和运行(在设备上)后,您可以删除Project Navigator中的任何重复(和/或红色)框架或目标General选项卡

  • 0

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

    enter image description here

相关问题