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

Posted

技术标签:

【中文标题】删除“DerivedData”后,Xcode 不会添加“嵌入式二进制”【英文标题】:Xcode won't add "Embedded binary" after deleting "DerivedData" 【发布时间】:2015-03-03 03:40:56 【问题描述】:

辅助搜索的替代标题:

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

概述

删除xcode6 中的“DerivedData”文件夹(或执行“Product > Clean”)后,我无法将另一个项目中的 CocoaTouch 框架添加到“嵌入式二进制”部分(在“常规”选项卡下)。

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

其他症状

单击“Embedded Binaries”下的 + 会显示框架选择器,但在工作区的不同项目中选择框架没有任何作用。

【问题讨论】:

看看我的回答***.com/questions/24878274/… 【参考方案1】:

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

先决条件:阅读Daniel Tull's answer。

    从工作区中删除所有框架项目 执行“干净构建”和/或删除“DerivedData” 将项目添加回工作区 构建项目(可能是可选的) 在应用目标的“常规”选项卡中,单击“链接的框架和库”下的 +,选择框架。 在模拟器中构建和运行(构建或运行应该没有问题) 为设备构建并运行(这可能会由于框架未正确链接而导致崩溃,请忽略此崩溃) 点击“Embedded Binaries”下的+,选择框架。这应该将其添加到项目中(可能在“链接框架和库”下重复) 对所有必需的框架重复 确认构建和运行(在设备上)后,您可以在项目导航器或目标“常规”选项卡中删除任何重复的(和/或红色)框架

【讨论】:

【参考方案2】:

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

我有made a video,它描述了如何最好地将构建的框架从一个项目添加到另一个同级项目中的应用目标。

【讨论】:

非常感谢 - 我不确定我是否能解决这个问题! 位置下拉菜单对我来说是灰色的,不允许我更改为相对。嗯。 @Tres,希望你现在已经解决了你的问题,但这里有一个建议给其他有同样问题的人。您必须确保选择正确的文件。您应该在应用项目(不是框架项目)的项目导航器中选择您的框架。看看我下面的答案,我添加了一张图片来更好地解释。 哇,非常感谢!!!我为此烧了很多天和脑细胞。为什么 Xcode 或任何 IDE 会默认使用绝对路径设置?!?!!@#$@^!$#^【参考方案3】:

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

【讨论】:

以上是关于删除“DerivedData”后,Xcode 不会添加“嵌入式二进制”的主要内容,如果未能解决你的问题,请参考以下文章

为啥 Xcode 将 DerivedData 放在我的项目文件夹中?

Xcode 清理

清除编译缓存DerivedDate

Xcode10出现代码无提示无色解决方案

Xcode清理存储空间

归档时 xcode 9.3 错误命令 /bin/sh 失败,退出代码为 1