Xcode模拟器:如何删除不需要的旧设备?

我正在运行Xcode 4.3.1 iOS模拟器,它最初只支持iOS 5.1。

我需要用iOS 4.3测试我的代码,所以我使用Xcode的“安装”功能来安装它,如“在iOS 4.3设备模拟器上安装Xcode ?”所述

现在我完成了测试,但找不到方法卸载4.3部分(“iPhone 4.3模拟器”和“iPad 4.3模拟器”)。我想减少方案菜单中的混乱。

苹果的Xcode列表中没有人知道答案!

编辑:注意自Xcode 4.3以来发生了很大的变化,所以建议正在阅读这篇文章的人看看所有的答案。最新的,如史蒂夫莫泽的可能对你更有用!

EDIT 10/2017:由Julio Carrettoni在Twitter上发布

如果你是iOS开发人员,执行以下命令:
$ xcrun simctl delete unavailable < br > 它删除了Xcode不再使用的旧模拟器。对我来说是6Gb 我自己没试过…

[另外,我刚刚看到Russ Bishop在下面的评论中提到了这一点…]

169313 次浏览

你试过直接从Xcode包中删除4.3 SDK吗?

/应用程序/ xcode /内容/开发/平台/ iPhoneSimulator.platform /开发/ sdk

中相应的.dmg文件也请删除

~ /图书馆/缓存/ com.apple.dt.Xcode /下载

防止Xcode重新安装重复相同的包。


关于XCode >= 6参见@praveen-matanam的回答

如果你只是删除SDK, Xcode 4.6会提示你重新安装任何旧版本的iOS模拟器。为了避免这种情况,你还必须删除Xcode缓存。这样你就不会被迫在启动时重新安装旧的SDK。

删除iOS 5.0模拟器,删除这些,然后重新启动Xcode:

  1. /应用程序/ xcode /内容/开发/平台/ iPhoneSimulator.platform /开发/ sdk / PhoneSimulator5.0.sdk
  2. ~ /图书馆/缓存/ com.apple.dt.Xcode

例如,在完成Xcode的干净安装后,我从Xcode首选项安装了iOS 5.0模拟器。后来,我觉得5.1就足够了,但不能删除5.0版本。Xcode一直强迫我在发布时重新安装。在删除缓存文件和SDK之后,它不再询问。

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

要做到这一点请到:

. Target->摘要然后更改部署目标

在Xcode 6+中,你可以直接到菜单>窗口>设备>模拟器中删除你不需要的模拟器。

在Xcode 6及以上版本中,你可以从路径/Library/Developer/CoreSimulator/Profiles/Runtimes中找到并删除模拟器。重启Xcode才能生效(可能不需要)。

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

/private/var/db/receipts/

可能仍然包含过时的iPhoneSimulatorSDK .bom.plist文件,如下所示:

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

这些可以使你的下载选项卡的Xcode的首选项显示一个tick ()为过时的模拟器版本。

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

sudo find / -name "*PhoneSimulator*"

然后进入对应目录,手动删除不需要的simulatorsdk

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

只要去/Applications/Xcode.app/Contents/Developer/Platforms并删除你不需要的东西。Xcode会正常启动。如果您完全担心,那么您可以简单地从垃圾中恢复。

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

xcrun simctl delete unavailable

此外,如果你正在寻找回收模拟器相关的空间迈克尔·蔡发现删除sim日志为他节省了30 GB。

~/Library/Logs/CoreSimulator

我试了所有的答案。没有一个对我有用。

Sierra + Xcode 8.2对我来说有用的是:

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

(也许这不会为你工作,也许这个作为一个独立的解决方案,或者也许你必须这样做,除了其他答案,但我在这里做了所有的解决方案,所以不确定是什么做的)。请注意,这里的一些答案是旧的,模拟器的位置已经改变了。运用的回答似乎是最近的。

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

我也有同样的问题。我快没地方写了。

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

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

删除你不想要的iOS版本,释放磁盘空间。我节省了50GB以上的空间。

enter image description here



请注意→你不能在Finder里面看到~/Library吗?默认情况下是隐藏的。使用Terminal并输入cd ~/Library/Developer/Xcode/iOS\ DeviceSupport/或谷歌来查看隐藏的文件夹。



请注意→如果在一台macOS机器上有多个用户,请确保找到的目录中只有最初安装xCode的用户帐户。

2020年10月更新

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

  • xcrun simctl list devicesxcrun simctl list --json列出所有模拟器
  • xcrun simctl delete <device udid>删除指定的设备
  • xcrun simctl delete unavailable为不再支持的运行时删除旧设备
你可以用xcrun做更多的事情(见代码片段)
- `xcrun simctl boot <device udid>` to launch (multiple) simulators
- `xcrun simctl io booted recordVideo — type=mp4 ./test.mp4` to record simulator video
- `xcrun simctl io booted screenshot ./screen.png` to make screenshot of simulator
- `xcrun simctl openurl booted https://google.com` to open URL in simulator
- `xcrun simctl addmedia booted ./test.mp4` to upload photo or video file (for photos app)
- `xcrun simctl get_app_container booted <your apps bundle identifier>` to find the app container (where identifier is like *com.bundle.identifier*)
- `xcrun simctl help` to explore **more** commands

原来的答案

2017年9月,Xcode 9

运行时

你可以在这里找到它们:

/Library/Developer/CoreSimulator/Profiles/Runtimes

enter image description here

设备

删除设备:

~/Library/Developer/CoreSimulator/Devices
使用Xcode更容易删除它们: Xcode->Window->设备和模拟器 enter image description here < / p >

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

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

我希望它能帮助别人🙂

命令+空间

类型“模拟器”

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

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

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

:)

以下的一些答案在这里,删除一些模拟器从我的Xcode菜单>窗口>设备>模拟器没有帮助我垂死的磁盘空间: enter image description here < / p >

然而,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)

加起来是33gb !

一场血战随之而来

查看更多详细信息在这里

我写了一行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的设备

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

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

有些人试图用一种方法来解决它,有些人用第二种方法。基本上,有两个问题,如果你检查它们&解决这两个问题-在99%它应该修复这个问题:

  1. 旧设备模拟器位于YOUR_MAC_NAME(例如Macintosh) -> Users -> YOUR_USERNAME (daniel) -> Library -> Developer -> Xcode -> iOS Device Support。留在那里,最新的一个,到今天为止,它是13.2.3 (17B111),但在未来它会改变。iOS版本的最高数字(这里是Macintosh0)表明它是更新的。

  2. 在此之后,通过运行xcrun simctl list devices列出你在Terminal中的设备。其中许多可能是unavailable,因此通过运行xcrun simctl delete unavailable删除它们。这样也会腾出一些空间。为了确保一切正常,再次运行xcrun simctl list devices检查它。你应该只看到最新版本的设备(这里是13.2.3),如下面的截图所示。

enter image description here

作为一个奖励,这与这个问题有点不相关,但仍然有一些空间。去YOUR_MAC_NAME(例如Macintosh) - > Users - > YOUR_USERNAME(例如daniel) - > Library - > Developer - > Xcode - > Archives。您将看到许多已归档部署的应用程序,很可能您并不需要所有这些应用程序。尝试删除这些不再被使用的文件。

使用这两种方法和额外的方法,我能够在我的Mac上获得额外的15gb空间。

PS.简单地从Xcode中删除模拟器通过Xcode -> Window -> Devices and Simulators -> Simulators(或使用键盘快捷键时简单地CMD + SHIFT + 2)并在那里删除它是没有帮助的。你真的需要按照描述的步骤去做。

在Mac上,查看/Library/Developer/Xcode/iOS\ DeviceSupport

iOS DeviceSupport

您可以使用以下代码片段删除不可用的运行时:

echo "rm -rf $(xcrun simctl list runtimes -j |\
jq ".runtimes[] | select(.isAvailable|not) | .bundlePath" | xargs)"

为了执行,删除echo或在最后添加| bash

如果你没有jq命令可用,你可以使用brew install jq来获取它

  1. 进入Window(从菜单栏)—>设备和模拟器 ——比;点击模拟器>右键单击要删除的模拟器—>单击“删除”< / p >

  2. 删除你在过去通过Xcode作为额外的组件安装的任何不需要的模拟器。

  • < p >打开终端

  • < p > <强>打开/图书馆/开发/ CoreSimulator / Profiles /运行时< / >强类型

  • 删除不需要的模拟器

更新2022

我们可以使用存储管理工具: ⌘+空格键和搜索存储。

在开发者:你可以找到Xcode缓存和构建文件,也可以删除旧版本的iOS支持文件。

enter image description here

在macOS大苏尔&蒙特利

更新Xcode 14

在Xcode 14中,你终于可以通过"平台"卸载模拟器运行时;部分。只要选择一个,然后按减号"-"按钮在左下角。