我可以安全地删除 Xcode Derived 数据文件夹的内容吗?
Posted
技术标签:
【中文标题】我可以安全地删除 Xcode Derived 数据文件夹的内容吗?【英文标题】:Can I safely delete contents of Xcode Derived data folder? 【发布时间】:2013-09-26 19:39:05 【问题描述】:我的磁盘空间不足,并通过第三方实用程序检查 ~/Library/Developer/Xcode/DerivedData 目录占用了大约 22GB 的磁盘空间。
我搜索了***并找到了这篇文章
How can I safely delete in my ~/Library/Developer/Xcode/DerivedData directory?
这个问题的公认答案表明我不应该从这个目录中触摸/删除文件夹。所以我做的是
为我在 Appstore 上可用的应用找到一个现有的构建项目文件夹 从派生目录中删除了文件夹 推出 XCode 5 打开该项目 清理构建 在模拟器上测试和编译 重新归档 一切正常。没有任何损坏。除非我错过了该帖子的答案,否则我想通过询问有经验的开发人员来确保,如果我从 DerivedData 中删除所有文件夹,它不会在构建、测试和编译这些项目时对我造成伤害。
【问题讨论】:
对所引用问题的接受答案是***.com/a/7284632/8047,它没有说明不从 DerivedData 中删除...尽管存档对于以后调试内容很重要,但这是一个不同的目录。 【参考方案1】:是的,您可以直接从DerivedData
子文件夹(Not DerivedData Folder)
中删除所有文件。
这不会影响您的项目工作。 DerivedData
文件夹的内容是在构建期间生成的,您可以根据需要删除它们。这不是问题。
DerivedData
的内容将在您再次构建项目时重新创建。
Xcode8+ 更新
从 Xcode8 中删除了窗口选项卡中的项目选项,因此您仍然可以使用第一种方式:
Xcode -> Preferences -> location -> click on small arrow button as i explain in my first answer.
Xcode7.3 更新 要删除特定项目的 DeriveData,您只需执行以下步骤:
转到Window -> Project
:
你可以找到项目列表,你可以去DerivedData
文件夹,也可以直接删除单个项目的DerivedData
我不在 Xcode5 上工作,但在 4.6.3 中你可以找到DerivedData
文件夹,如下图所示:
点击首选项后..
你会得到这个窗口
【讨论】:
非常感谢。 “派生数据”内容基本上就像 Xcode 的缓存和不需要的文件一样吗?所以这就是为什么可以删除它以清理空间? @gone 你在说什么?构建的文件必须放在某个地方。 好吧,使用 CMake 和其他 make 系统,即使使用源外构建,生成的文件等仍然在项目的路径中,如果我删除文件夹结构或清理时会被删除执行清洁。由于我每周左右标记大约 100 个作业,因此我需要记住要手动删除的大量文件,并使用 XCode UI 单独删除每个项目的数据。所以我坚持我之前的评论,尽管我现在已经在我的 .bashrc 中实现了威廉的别名。 XCode 8 再次改变了一切(它一直很痛苦)。现在,我们需要手动转到/Users/YourUsername/Library/Developer/Xcode/DerivedData
的文件夹并将它们全部删除。正如你已经为 XCode 7 编辑过的一样,我想你可能想为 XCode 8 再次编辑它。
您可以查看我的完整答案,在同一个旧答案中有多个答案仍在努力选择偏好和位置选项卡。 :)【参考方案2】:
我经常清除derivedData,以至于我有一个别名。它可以解决构建问题。我在 /Users/Myusername/.bash_profile
中有以下内容alias purgeallbuilds='rm -rf ~/Library/Developer/Xcode/DerivedData/*'
然后在终端输入purgeallbuilds,DerivedData的所有子文件夹都被删除了。
【讨论】:
您可以删除 DerivedData 文件夹本身。它将被重新创建。 当我删除此文件夹时,Xcode 8 中的构建立即失败。一旦我将它添加回来,一切都会再次起作用。 这是非常有用的提示。我通常每半年就会遇到一次空间不足,而且很难记住应该清除哪些文件夹。别名绝对方便。【参考方案3】:刚刚使用一个小脚本创建了一个 github 存储库,该脚本创建了一个 RAM 磁盘。如果您将 DerivedData 文件夹指向/Volumes/ramdisk
,则在弹出磁盘后所有文件都将消失。
它加快了编译速度,也消除了这个问题
xc-launch repo
最好使用DTerm启动
【讨论】:
【参考方案4】:我会说它是安全的——我经常删除许多 ios 项目的文件夹的内容,this way。而且,我在构建或提交到 App Store 方面没有任何问题。该过程会删除 Xcode 5 和 6 的派生数据并清理项目的缓存资产。
有时,只需在派生数据目录上调用 rm -rf 会留下一两个延迟文件,但我的脚本会循环,直到所有文件都被删除。
【讨论】:
呃。错字。我的意思是“提供” 啊,我正在链接到我在回答另一个问题时提供的脚本。这样,如果我想更新脚本,我只需要在一个地方进行编辑。你可以点击链接吗? 我现在看到了代码。之前没有看到链接(如果有的话)谢谢。【参考方案5】:“派生数据”的内容是在构建时生成的。您可以安全地删除它。按照以下步骤删除“派生数据”:
-
选择 Xcode -> 首选项..
-
这将打开弹出窗口。选择“位置”标签。
在位置子标签中,您可以看到“派生数据”
点击路径旁边的箭头图标。
-
这将打开包含“派生数据”的文件夹
右键单击并删除文件夹。
【讨论】:
【参考方案6】: $ du -h -d=1 ~/Library/Developer/Xcode/*
显示至少有两个文件夹很大:
1.5G /Users/horace/Library/Developer/Xcode/DerivedData
9.4G /Users/horace/Library/Developer/Xcode/iOS DeviceSupport
随意删除文件夹中的内容:
rm -rf ~/Library/Developer/Xcode/DerivedData/*
还有一些:
open ~/Library/Developer/Xcode/iOS\ DeviceSupport/
【讨论】:
废话...从旧版本的 iOS 中删除设备支持文件夹中的文件释放了 28GB...【参考方案7】:XCODE 7.2 更新
(也适用于 7.1.1)
-
点击Window,然后点击Projects,然后删除Derived Data。
像这样:
然后在这里删除:
希望有帮助!
【讨论】:
这将允许您手动删除它,但其他帖子使用的方法是一次删除 DerivedData 文件夹内容【参考方案8】:~/Library/Developer/Xcode/DerivedData
【讨论】:
默认是;我使用~/tmp/DerivedData
,这样我可以更轻松地访问构建的文件/捆绑包。【参考方案9】:
XCODE 12 更新
在标签上:
-
点击 Xcode
首选项
位置 -> 派生数据
您可以访问所有派生数据并通过删除它们来清除它们。
【讨论】:
派生数据部分仅定义派生数据的路径。我看不到任何地方可以查看和删除它们。为什么不直接通过命令行来做呢? @AlxVallejo 在路径地址的末尾,您将看到一个图标,将您带到文件夹。点击它并删除文件夹,它将重新创建。【参考方案10】:是的,可以安全删除,我的脚本搜索并核对它找到的每个实例,轻松修改到本地目录
#!/usr/bin/env bash
set -o errexit
set -o nounset
set -o pipefail
IFS=$'\n\t'
for drive in Swap Media OSX_10.11.6/$HOME
do
pushd /Volumes/$drive &> /dev/null
gfind . -depth -name 'DerivedData'|xargs -I '' /bin/rm -fR ''
popd &> /dev/null
done
【讨论】:
【参考方案11】:XCode 8:删除当前项目的派生数据:
点击产品菜单
按住选项键
点击清理构建文件夹
【讨论】:
当我按住选项键时,Clean Build 选项灰显。 ://【参考方案12】:XCODE 10 更新
点击状态栏上的Xcode 然后选择首选项
在弹出窗口中选择最后一段之前的Locations
您可以通过右侧小图标访问Derived Data文件夹
【讨论】:
以上是关于我可以安全地删除 Xcode Derived 数据文件夹的内容吗?的主要内容,如果未能解决你的问题,请参考以下文章