Xcode Simulator:如何删除较旧的不需要的设备?


209

我正在运行Xcode 4.3.1 iOS-Simulator,最初仅支持iOS 5.1。

我需要使用iOS 4.3测试我的代码,因此我按照“使用iOS 4.3设备模拟器安装Xcode?”中所述使用Xcode的“安装”功能进行安装

现在,我已经完成测试,但是找不到卸载4.3部分的方法(“ iPhone 4.3 Simulator”和“ iPad 4.3 Simulator”)。我想减少“方案”菜单中的混乱情况。

苹果Xcode listserv上没有人知道答案!

编辑:请注意,自Xcode 4.3以来,已发生了很大变化,因此建议任何阅读此指南的人查看所有答案。像史蒂夫·摩泽(Steve Moser)这样的最新人可能对您更有用!

编辑10/2017:朱利奥·卡雷托尼发表于推特

如果您是iOS开发人员,请执行以下操作:
$ xcrun simctl delete unavailable
它删除不再使用的旧模拟器Xcode。对我来说是6Gb自己不尝试...

[此外,我刚刚看到Russ Bishop在下面的评论中已经提到了这一点...]

Answers:


172

您是否只是尝试从Xcode包中删除4.3 SDK?

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs

请同时删除相应的.dmg文件

〜/ Library / Caches / com.apple.dt.Xcode /下载

防止从Xcode中重新安装一次相同的包。


对于XCode> = 6,请参见@ praveen-matanam的答案


3
你是个天才!非常感谢!无法相信Xcode listserv上没有这个。我在几个地方看,但没有你建议的地方。
David H

这在xcode 4.5.2中不起作用。再次启动编译器时,它将要求您再次安装较旧的旧设备。取消将退出xcode,因此您必须重新安装。
Alejandro Luengo

没错,Alejandro,Apple似乎已经更改了“许可证”,因此您始终需要一个有效的开发人员帐户,并且必须在该应用程序的每个主要更新上一次又一次地安装所有扩展。.遗留系统也大多不受支持;
childno͡.de

1
有关适用于Xcode 4.6的某些内容,请参见下面的Dan Reese的答案。
BJ Homer

2
适用于Xcode 6.3.1,以及此答案stackoverflow.com/a/30206853/286618。清除了旧文档并节省了9GB !!!
RoLYroLLs 2015年

203

在Xcode 6+中,您只需转到菜单>窗口>设备>模拟器,然后删除不需要的模拟器。


1
这个问题与版本4或可能与版本5有关。如您所见,这非常困难。从那时起我就避免使用旧的模拟器。
David H

3
那是正确的。如果希望模拟器“真正消失”或将其重新安装到
Xcode-

谢谢,这是管理模拟器的最简单方法。而不是从xcode文件夹中删除模拟器。这对我
有用

如何删除旧版iOS设备?设备窗口仅显示带有iOS 9.1(在Xcode 7.1上)的模拟器。我想避免编辑device_set.plist并在Finder中删除文件夹。
生物

您还可以使用以下脚本来重新创建模拟器:gist.github.com/cabeca/3ff77007204e5479f7af
tomi44g 2015年

154

在Xcode 6及更高版本中,您可以从path中找到并删除模拟器/Library/Developer/CoreSimulator/Profiles/Runtimes。重新启动Xcode以生效(可能不需要)。


6.4这里。需要重启我的机器才能使其生效。
aasatt

2
7.2-

xcode 8.0需要重新启动以清除设备窗口中的无效模拟器
Doug Amos

2
@thiagoveloso这是因为您没有安装任何其他版本的模拟器,而是安装了iOS 10.0+。我只有9.3、8.4和8.3 .simruntime档案
Aleksey Potapov

1
我也可以在~/Library/Developer/...
罗伯托

124

2018年10月更新

如前所述,您可以xcrun用来做一些事情:

  • xcrun simctl list devicesxcrun simctl list --json列出所有模拟器
  • xcrun simctl delete <device udid> 删除特定设备
  • xcrun simctl delete unavailable 删除不再支持的运行时的旧设备

您可以执行更多操作xcrun(请参阅代码段)

原始答案

2017年9月,Xcode 9

运行时间

您将在这里找到它们:

/Library/Developer/CoreSimulator/Profiles/Runtimes

在此处输入图片说明

设备

要删除设备,请点击此处:

~/Library/Developer/CoreSimulator/Devices

使用Xcode删除它们要容易得多:Xcode-> Window-> Devices and Simulators 在此处输入图片说明

帮助Xcode“忘记”运行时并防止重新安装它们-在此处删除.dmg文件:

~/Library/Caches/com.apple.dt.Xcode/Downloads

我希望它会帮助某人


8
请不要从文件系统中删除设备;使用xcrun simctl delete <device udid>。您也可以运行xcrun simctl delete unavailable以删除不再支持的运行时的旧设备。
russbishop

1
我没有〜/ Library / Caches / com.apple.dt.Xcode / Downloads(在〜/ Library / Caches / com.apple.dt.Xcode /中没有Downloads文件夹),想知道为什么
auspicious99 '18

1
您列出的文件夹路径不存在,Xcode 9.4
Peter Cullen

这就是我要寻找的内容:不是一个接一个地删除12.2模拟设备,而是从系统中删除整个12.2模拟器。该路径适用于XCode 10.3。删除后,我不得不重新启动它,并且模拟器的数量减少了一半。
catanore '19

77

在终端中运行此命令以删除无法从计算机上使用的当前版本的Xcode(8+?)访问的模拟器。

xcrun simctl delete unavailable

同样,如果您想回收模拟器相关的空间,Michael Tsai发现删除sim日志可以为他节省30 GB。

~/Library/Logs/CoreSimulator

2
谢谢!显然,最初的问题是针对Xcode 4的,因此此后发生了很大变化!
David H

2
它为我释放了将近20GB。谢谢
Libor Zapletal '17

26

如果您只是删除SDK,则Xcode 4.6会提示您重新安装所有旧版本的iOS Simulator。为避免这种情况,还必须删除Xcode缓存。这样一来,您就不必在启动时重新安装较旧的SDK。

要删除iOS 5.0模拟器,请删除它们,然后重新启动Xcode:

  1. /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/PhoneSimulator5.0.sdk
  2. 〜/ Library / Caches / com.apple.dt.Xcode

例如,在全新安装Xcode之后,我从Xcode首选项安装了iOS 5.0模拟器。后来,我认为5.1足够了,但无法删除5.0版本。Xcode一直强迫我在启动时重新安装它。删除缓存文件和SDK之后,不再询问。


1
此处的答案更为精确,尽管我自己尚未对其进行测试。
丹·里斯

21

我有同样的问题。我的空间不足。

删除旧的设备模拟器没有帮助。

我的空间问题是由xCode引起的。自从我安装了xCode以来,它在我的macOS上保留了每个iOS版本的副本。

删除您不需要的iOS版本并释放磁盘空间。我节省了50GB以上的空间。

在此处输入图片说明 注意 ->如果您在一台macOS机器上有多个用户,请确保仅使用最初安装xCode的用户帐户查找目录。


我算上9G-您如何恢复75G?
David H

嗨@DavidH-75GB在我清理之前。由于我使用xCode已有多年,因此xCode已在我的计算机上静默安装了iOS 7、8、9和10的每个变体。实际上,今后我可能只需要iOS10和iOS11。
rustyMagnet

1
太好了-我从来不知道这个地方。我这里曾经安装过每个版本的Xcode,都有几十GB的空间。
梯队

该文件夹确实存在xCode 9.4 @PeterCullen。您只需要从最初安装xCode的用户帐户访问它。我的Mac上有两个共享xCode的用户帐户。只有安装了xCode的用户帐户才能查看此文件夹。
rustyMagnet

1
您正在打开Finder并选择“转到文件夹”吗?默认情况下,库是一个隐藏的文件夹。
rustyMagnet

9

按照此处的一些答案,从我的Xcode菜单>窗口>设备>模拟器中删除一些模拟器并没有帮助我垂死的磁盘空间: 在此处输入图片说明

但是,cd ~/Library/Developer/Xcode/iOS\ DeviceSupport运行时,du -sh *我得到了所有这些家伙:

2.9G    10.0.1 (14A403)
1.3G    10.1.1 (14B100)
2.9G    10.3.2 (14F89)
1.3G    10.3.3 (14G60)
1.9G    11.0.1 (15A402)
1.9G    11.0.3 (15A432)
2.0G    11.1.2 (15B202)
2.0G    11.2 (15C114)
2.0G    11.2.1 (15C153)
2.0G    11.2.2 (15C202)
2.0G    11.2.6 (15D100)
2.0G    11.4 (15F79)
2.0G    11.4.1 (15G77)
2.3G    12.0 (16A366)
2.3G    12.0.1 (16A404)
2.3G    12.1 (16B92)

总共33 GB!

洗完澡

在这里查看更多详细信息


6

除了@ childno.de答案,您的Mac目录

/private/var/db/receipts/

可能仍包含过时的iPhoneSimulatorSDK .bom.plist类似以下文件的文件:

/private/var/db/receipts/com.apple.pkg.iPhoneSimulatorSDK8_4.bom /private/var/db/receipts/com.apple.pkg.iPhoneSimulatorSDK8_4.plist

这些可以使您的Xcode首选项的Downloads选项卡在该过时的模拟器版本上显示一个勾号()。

要清除不需要的模拟器,可以在Mac终端上使用以下bash命令进行搜索:

sudo find / -name "*PhoneSimulator*"

然后转到相应目录以手动删除不需要的SimulatorSDK


4

在XCode中打开Window-Devices,然后选择并删除过时的模拟器。


3

您可以做的另一件事是将“部署”目标更改为最高值。这将防止“方案”菜单显示较旧的版本。

为此,请转到:目标->摘要,然后更改部署目标。


自从我发布问题以来,情况可能发生了变化,但是当我这样做时,您会在Scheme菜单中看到不同的模拟器,并且选择正确的模拟器变得很复杂。
David H

3

我尝试了所有答案。他们都没有为我工作。

在Sierra + Xcode 8.2上对我有用的是:

/Library/Developer/CoreSimulator/Devices 并删除所有设备。

(也许这对您不起作用,也许这一个独立的解决方案,或者也许除了其他答案之外您还必须这样做,但是我在这里做了所有解决方案,所以不确定该做什么)。请注意,这里的一些答案很旧,并且模拟器的位置已更改。Snowcrash的答案似乎是最新的。


我是否可以假设您先关闭Xcode,然后再重新启动Xcode?
David H

@DavidH对不起,我不记得我做了什么。我有3-4周的问题了。每当我在项目/模拟设备之间切换时,一切都在发生...我只是尝试了一切,这似乎对我来说确实...对我来说,它可能还会为您带来其他好处
Honey

@DavidH您是否也尝试过此答案
亲爱的,

对于Xcode 10及更高版本,该文件夹为:~/Library/Developer/CoreSimulator/Devices
blackjacx

3

我写了一行bash脚本,它将删除所有模拟器:

xcrun simctl list devices | grep -E -o -i "([0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12})" | xargs -L1 xcrun simctl delete
  • xcrun simctl list devices 将列出您计算机上安装的所有模拟器
  • grep -E -o -i "([0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12})" 将抓取设备UUID
  • xargs -L1 xcrun simctl delete 将尝试为找到的每个UUID删除设备

如果要查看它将执行的所有内容,可以在echo之前添加xcrun,即

xcrun simctl list devices | grep -E -o -i "([0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12})" | xargs -L1 echo xcrun simctl delete

2

这些答案的问题在于,每次Xcode更新时,菜单和位置都会改变。

只需转到/Applications/Xcode.app/Contents/Developer/Platforms并删除不需要的内容即可。Xcode将正常启动。如果您很担心,则可以从“废纸rash”中恢复。


2
我严重怀疑Xcode下载的模拟器是否要求您提供捆绑软件。他们肯定会进入用户库,不是吗?这就是说,我从来没有下载了一老一,因为我有我的问题和Xcode 4
David H制作

对于每个平台(iOS,watchOS,AppleTVOS,MacOS),我都有2个文件夹:我有“ iPhoneOS.platform”和“ iPhoneSimulator.platform”我应该删除哪一个?我和同事一起检查了一下,他确实两个都没问题,我真正在这里的原因是因为这个问题,有人告诉我这是因为我有2个模拟器/ Xcode,但是如果我不正确,我会已经删除了我的其他版本的Xcode,并且还删除了9.3运行时...
Honey

1
请请不要这样做。没有人会把Xcode包中的内容弄乱。
russbishop

2

有些人尝试使用一种方法来修复它,而另一些则尝试。基本上,有2个问题,如果您将它们检出并解决这两个问题,则有99%的问题应该可以解决:

  1. 位于YOUR_MAC_NAME(例如Macintosh)-> Users-> YOUR_USERNAMEdaniel)-> Library-> Developer-> Xcode->的旧设备模拟器iOS Device Support。留在那里,最新的是,今天是13.2.3 (17B111),但是将来会改变。13.2.3iOS版本的最高编号(此处为)表示它较新。

  2. 在此之后,Terminal通过运行列出您的设备xcrun simctl list devices。它们可能很多unavailable,因此请通过运行将其删除xcrun simctl delete unavailable。它还将释放一些空间。为确保一切正常,请再次运行xcrun simctl list devices。您应该只能看到最新版本的设备(在此处13.2.3),如下面的屏幕截图所示。

在此处输入图片说明

作为奖金,与该问题的相关性稍低,但仍然有一些空间。转到YOUR_MAC_NAME(例如Macintosh)-> Users-> YOUR_USERNAME(例如daniel)-> Library-> Developer-> Xcode-> Archives。您将看到许多已存档的已部署应用程序,很可能不需要它们全部。尝试删除这些不再使用的文件。

使用这两种方法和红利方法,我可以在Mac上获得额外的15 GB空间。

PS。只需从Xcode删除模拟器,只需转到Xcode-> Window-> Devices and Simulators-> Simulators(或使用键盘快捷键时为CMD+ SHIFT+ 2)并将其删除即可。您确实需要执行上述步骤。


-2

Command +空格键

输入“模拟器”

打开您不再需要的旧版Beta模拟器。

在扩展坞中右键单击它,然后选择选项>“在Finder中显示”

关闭应用程序,然后将其从文件夹中删除。

:)

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.