我可以删除不必要的Xcode设备模拟器吗?


64

我发现笔记本电脑上的Xcode占用了很多存储空间,因此我试图删除Xcode中不必要的文件。

下有四个目录Application/Xcode.app/Contents/Developer/Platforms/。我觉得WatchSimulator.platformAppleTVSimulator.platform没有必要,因为我基本的iOS开发几乎只使用Xcode中。

我想知道是否可以直接删除那些平台目录吗?

目录


仅供参考...您将仅获得显示空间的一半,因为它们似乎已被压缩。看一下“获取信息”表,例如,在我的系统上,对于WatchOS.platform,它显示了2,212个项目的50,579,830字节(磁盘上的28.2 MB),而AppleTVSimulator.platform显示了29,705个项目的1,865,477,227字节(磁盘上的1.1 GB)。因此,您将不会获得与OP中显示的值一样多的可用空间。
user3439894 '17

文件已被压缩,Apple的HFS +文件系统支持透明压缩,但是Finder和lsTerminal缺少用于查看文件是否使用hfsCompression的标志,没有Get Info Sheet的情况下,您可以看到磁盘上的值与以字节为单位的大小显着不同。 。有一个由第三方编写的实用程序,如果要自己编译,则包括源代码afsctool。其功能之一是获取有关现有HFS +压缩文件的信息。
user3439894

哪种程序可以帮助您确定驱动器上的这些大文件?
Pysis

1
@Pysis 在我看来像OmniDiskSweeper。该工具尚未针对APFS和压缩进行更新,尽管看起来他们现在已经进行了一些新的测试。
扎克·利普顿

1
@Zach Lipton,如果OP正在运行High Sierra和APFS,则文件可能未压缩,因为APFS还不支持压缩。还是在10.13.1中进行了更改?
user3439894 '17

Answers:


63

是的,您可以删除任何不使用的模拟器。当我停止支持较旧的iOS版本时,我通常会这样做。

如果删除它们,然后发现将来需要它们,则可以从Apple的开发人员站点重新下载它们。

删除它们的最佳方法是在Xcode中。转到Window -> Devices and Simulators。这将打开一个新窗口,其中包含您在Xcode中使用的所有设备。

点击顶部的,Simulators您会在左侧看到一个列表。

从那里找到要删除的模拟器,Cntl然后单击(或右键单击)并选择Delete

我使用不再支持的每个iOS版本中运行的每个模拟器来执行此操作。


7
我知道这篇文章已有两年历史了,但这似乎并没有删除模拟器,而是在Xcode中列出了它。因此,如果需要删除它以节省磁盘空间,则这不是正确的方法。
肖恩·帕特森

34

Xcode现在与所有用户共享模拟器。因此,您需要从以下文件夹中删除模拟器:

/Library/Developer/CoreSimulator/Profiles/Runtimes

例如:

cd /Library/Developer/CoreSimulator/Profiles/Runtimes
sudo rm -rf iOS\ 8.4.simruntime/
sudo rm -rf iOS\ 9.3.simruntime/

干杯!


29

您可以在终端中使用以下命令轻松删除所有不可用的模拟器:

xcrun simctl delete unavailable

1
实际上,这没什么用。如果您运行xcrun simctl list,将会看到只有约10%的设备被视为“不可用”。设备也不是真正的太空猪。iOS运行时。实际上,@ Francois的答案要好得多。
joshuakcockrell

1
@joshuakcockrell不一定;经过多年积累的过时的模拟器版本,在我看来,这释放了可笑的空间。所以我猜是ymmv。
保罗·坎特雷尔

wc -l在列表中算出()148行,其中“不可用”,有128行。上面的delete命令为我提供了14GB的存储空间
Craig

15

尽管@fsb的回答允许删除模拟器“实例”,但释放不再需要的旧模拟器平台所使用的大量空间的正确方法是转到以下文件夹:

~/Library/Developer/Xcode/iOS DeviceSupport

并删除与您不再需要的模拟器/平台相对应的文件夹。

此外,还有一篇非常不错的文章以及其他技巧和其他技巧:


3
似乎/Library/Developer/Xcode在新的macOS更新后已被删除。我在任何地方都找不到。
Suhaib

1
@Suhaib您忘记了最初的波浪号“ ”,从而使路径从您的主目录开始。正确的目录是:~/Library/Developer/Xcode/iOS DeviceSupport
里卡多·巴罗佐

6

Xcode在2019+ Catalina,Xcode 11.0中存储模拟器的位置

运行时间

$ open /Library/Developer/CoreSimulator/Profiles/Runtimes

例如:iOS 13.0watchOS 6.0到目前为止,这些占用最多的空间。每个可以高达〜5GB

设备

$ open ~/Library/Developer/CoreSimulator/Devices

例如:iPhone XriPhone 11 Pro Max。这些通常每个<15 mb。

说明

模拟器在运行时和设备之间分配。如果运行$ xcrun simctl list,则可以看到概述,但是如果要查找这些模拟器的物理位置,请查看我显示的这些目录。

删除不支持的运行时是完全安全的。如果需要,可以稍后重新安装它们。


1
谢谢,这对我有很大帮助!
acido

5
  • 列出所有模拟器xcrun simctl list devicesxcrun simctl list --json

  • 删除特定设备 xcrun simctl delete <device udid>

  • 删除不再支持的运行时的旧设备 xcrun simctl delete unavailable


您可以使用xcrun simctl delete all我想
revau.lt

1

打开Terminal.app并运行以下命令:

cd /Library/Developer/CoreSimulator/Profiles/Runtimes

现在,在下面的命令中键入要为其删除模拟器的iOS版本,例如,如果要为iOS 12.0删除,请运行:

sudo rm -rf iOS\ 12.0.simruntime/


1

要按iOS版本删除模拟器:

如果您只想删除特定版本的模拟器,并且恰好已fastlane安装,则可以启动交互式红宝石外壳并运行以下命令来删除所有iOS 10模拟器:

# launch the interactive ruby shell (irb)
$ irb

# require the device manager capabilities of fastlane core
irb(main):001:0> require 'fastlane_core/device_manager'

# delete all iOS 10 simulators
irb(main):002:0> FastlaneCore::Simulator.delete_all_by_version(os_version: "10.0")
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.