我正在运行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不可用 它删除了Xcode不再使用的旧模拟器。对我来说是6Gb 我自己没试过……

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


当前回答

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

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

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

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



注:>你不能看到~/库在Finder?默认情况下是隐藏的。使用终端,输入cd ~/Library/Developer/Xcode/iOS\ DeviceSupport/或谷歌如何查看隐藏文件夹。



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

其他回答

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

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

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

Old device simulators located at YOUR_MAC_NAME (e.g. Macintosh) -> Users -> YOUR_USERNAME (daniel) -> Library -> Developer -> Xcode -> iOS Device Support. Leave there, the newest one, as of today this is 13.2.3 (17B111), but in future it'll change. The highest number (here 13.2.3) of the iOS version indicates that it's newer. After this list your devices in Terminal by running xcrun simctl list devices. Many of them might be unavailable, therefore delete them by running xcrun simctl delete unavailable. It'll free some space as well. To be sure that everything is fine check it again by running xcrun simctl list devices. You should see devices only from the newest version (here 13.2.3) like the screenshot below shows.

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

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

PS.简单地从Xcode中删除模拟器通过到Xcode ->窗口->设备和模拟器->模拟器(或简单地CMD + SHIFT + 2时使用键盘快捷键)并删除它不会有帮助。你真的需要按照描述的步骤去做。

我写了一行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列表设备将列出您机器上安装的所有模拟器 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

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

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

若要执行,请在末尾删除echo或添加| bash。

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

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

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

/ Applications Xcode。app /地点/平台开发商iPhoneSimulator - - SDKs PhoneSimulator5开发商平台。0 sdk。 ~ / Library / Caches / com .苹果Xcode dt。

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