Xcode-免费清除设备文件夹?


78

我正在删除一些文件夹和文件,以在驱动器上腾出更多空间。我知道在路径:

~/Library/Developer/CoreSimulator/Devices/

每个模拟器和每个版本都有一个文件夹。该文件夹对我来说约为11GB。我知道我可以删除不再使用的旧版本的模拟器。但是从那个唯一的标识符中,我不知道哪个是正确的,哪个不是。所以我的问题是:我可以全部删除吗?下次我不会在模拟器中放任何我的应用程序也可以,但是我可以再放一些东西吗?模拟器的旧版本?还是其他?谢谢

Answers:


237

~/Library/Developer/CoreSimulator/Devices/路径是Xcode存储单个模拟器设备所需的大多数数据的位置。

Beau Nouvelle关于删除下载的模拟器版本的建议不会更改这些文件夹的大小,因为运行时存储在其他位置。

如果转到终端,则可以使用simctl工具(Xcode 6+附带)来列出您拥有的所有实际模拟器设备以及ID,以便您确定要删除的文件夹。

注意,您将看到我在此答案中不断使用xcrun simctl。通过让xcrun查找当前选择的Xcode的适当版本的simctl,可以为事情增加一些抽象。如果您的系统不像我的系统那么复杂,则可以删除“ xcrun”部分,而命令行仍应找到simctl工具。

xcrun simctl list devices

以下是一些我收到的输出摘要:

==设备==

-iOS 8.2-

-iOS 8.4-

iPhone 6 Plus(23E36868-715A-48C8-ACC3-A735C1C83383)(关机)

iPad Air(2928379B-70E3-4C59-B5BA-66187DDD3516)(关闭)

-iOS 9.1-

我的自定义iPhone 4s(4F27F577-FFD0-42C1-8680-86BBA7394271)(关闭)

iPad Retina(85717B35-313A-4161-850E-D99D5C8194A6)(关闭)

-不可用:com.apple.CoreSimulator.SimRuntime.iOS-9-0-

iPhone 4s(D24C18BC-268C-4F0B-9CD8-8EFFDE6619E3)(关闭)(不可用,找不到运行时配置文件)

从中可以看到我没有iOS 8.2模拟器设备。我有一些9.1和8.4仿真器设备。我确实有一个9.0模拟器设备(我在Xcode 7.0上的工作的一部分),但是我没有9.0模拟器运行时本身。因此,这是删除的不错选择,或者提醒我应该去Xcode下载9.0模拟器。

如果需要,您可以使用这些ID来标识相关设备的文件夹并手动将其删除(在这种情况下,我将删除“ D24C18BC-268C-4F0B-9CD8-8EFFDE6619E3”文件夹),但也可以使用simctl工具可以做到这一点。

根据simctl的7.1.1版本使用:

xcrun simctl help delete
Usage: simctl delete <device> [... <device n>] | unavailable

因此,我可以删除单个设备:

xcrun simctl delete D24C18BC-268C-4F0B-9CD8-8EFFDE6619E3

或者,我可以使用以下方法批量删除所有不可用的文件:

xcrun simctl delete unavailable

也没有必要将自己完全局限于不可用的模拟器。

如果您需要有关该工具的更多帮助,它附带一个相当简单的帮助命令:

xcrun simctl help


2
如果出现错误xcrun: error: unable to find utility "simctl",则应该可以使用xcrun /Applications/Xcode.app/Contents/Developer/usr/bin/simctl
rovr138 '18

2
Xcrun应该可以帮助您找到实用程序,这样您就不必自己了解它们的路径。但是,如果您已经知道simctl的路径,则无需使用“ xcrun”。只需直接运行它/Applications/Xcode.app/Contents/Developer/usr/bin/simctl
亚伦

运行后simctl delete unavailable,我回收了约10 Gb的设备,修剪了许多iOS版本的设备。我不知道这些还在那里。赢得!
wardw

很酷,还有一个问题,我们怎么知道哪个可用?我已经unavailable one通过使用删除了这些xcrun simctl delete unavailable文件,但是文件夹仍然太大..
boog

您可以根据需要删除其他模拟器设备。实际上,您实际上并不需要每个iOS版本上每个设备的实例。也许只保留一些代表性的示例,例如最小的可用iPad和iPhone,以及最大的可用iPad和iPhone。我相信Apple也已获得有关它们占用多少空间的反馈,因为Xcode 11的发行说明(当前处于beta版)强调了它将如何仅自动创建一些模拟器设备,而不是全部创建模拟器设备。
亚伦

1

不久前,我遇到了类似的问题,xcode在驱动器上占用了47G的内存。我试图删除一些模拟器设备,这些设备使我的xcode无法正常工作(疯狂)。因此,我删除了与xcode相关的所有内容并重新安装。这只是我的经验。


1

有时,Xcode喜欢加倍使用其模拟器。

通常,对我来说,解决方法一直是只删除它们。删除它们无害,因为您以后可以随时再次下载它们。

Xcode>首选项>下载

只要记住,如果您在那里有任何旧的模拟器(iOS 8.0-),您将无法通过Xcode重新下载它们。


0

在Xcode 8中:

1)$ sudo du -khd 1在终端中运行以查看每个文件夹的文件夹大小;

2)运行$ cd library/developer/coresimulator/devices以查看为所有Xcode模拟器存储的GB;

3)您将开始看到隐藏了大量的存储空间!现在,只需导航到Macintosh HD上的该位置,然后查看每个设备文件夹中的devices.plist即可

4)通过删除过去运行但不再需要测试的任何模拟器/ iOS版本来确定要删除和保留的文件夹。这些文件夹中存在可以用作旧备份或其他内容的旧sqlite版本,因此请在删除此文件夹中的所有内容之前考虑这一点。

我第一次这样做节省了超过50GB。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.