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

时间:2012-05-31 13:40:50

标签: ios xcode ios-simulator

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

我需要使用iOS 4.3测试我的代码,所以我使用了Xcode"安装"如"Installing Xcode with iOS 4.3 device simulator?"

中所述安装它的功能

现在我已完成测试但无法找到卸载4.3部分的方法(" iPhone 4.3模拟器"和#34; iPad 4.3模拟器")。我想减少Scheme菜单中的混乱。

Apple的Xcode listserv上没有人知道答案!

编辑:请注意,自Xcode 4.3以来已经发生了很多变化,因此建议任何人阅读此内容以了解所有答案。像Steve Moser这样的最新版本可能对你有用!

编辑10/2017:由Julio Carrettoni在Twitter上发表

  

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

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

19 个答案:

答案 0 :(得分:193)

在Xcode 6+中,您只需转到菜单>窗口>装置>模拟器并删除您不需要的模拟器。

答案 1 :(得分:157)

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

  

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

请同时删除

中相应的.dmg文件
  

〜/库/缓存/ com.apple.dt.Xcode /下载

再次

prevent Xcode from re-installing同一个包裹。


对于XCode> = 6,请参阅 @praveen-matanam 's answer

答案 2 :(得分:136)

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

答案 3 :(得分:80)

2018年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-&gt; Window-&gt;设备和模拟器 enter image description here

帮助Xcode“忘记”运行时并阻止重新安装 - 删除.dmg文件:

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

我希望它会帮助某人

答案 4 :(得分:67)

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

xcrun simctl delete unavailable

此外,如果您想要回收模拟器相关空间Michael Tsai,发现删除SIM日志会为他节省30 GB。

~/Library/Logs/CoreSimulator

答案 5 :(得分:24)

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

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

  1. /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/PhoneSimulator5.0.sdk
  2. 〜/库/缓存/ com.apple.dt.Xcode
  3. 例如,在彻底安装Xcode之后,我从Xcode首选项安装了iOS 5.0模拟器。后来,我认为5.1已经足够但无法删除5.0版本。 Xcode一直强迫我在发布时重新安装它。删除缓存文件和SDK后,它不再询问。

答案 6 :(得分:14)

我遇到了同样的问题。我的空间不多了。删除旧设备模拟器没有帮助。

我的太空问题是由xCode引起的。自从我安装了xCode以来,它保留了所有iOS版本。

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

enter image description here 注意 - &gt;如果您在一台macOS计算机上有多个用户,请确保仅使用最初安装xCode的用户帐户查找该目录。

答案 7 :(得分:5)

按照此处的某些答案,从我的xcode菜单>窗口>设备>模拟器中删除一些模拟器,模拟器并没有帮助我快要死掉的磁盘空间: enter image description here

但是,通过转到/Users/abdullah/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!

随后发生了洗血

查看更多详细信息here

答案 8 :(得分:5)

除了@ 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首选项的“下载”选项卡显示该过时模拟器版本的刻度()。

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

  

sudo find / -name "*PhoneSimulator*"

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

答案 9 :(得分:3)

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

答案 10 :(得分:2)

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

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

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

(也许这对你不起作用,也许这个 是一个独立的解决方案,或者除了其他答案你可能还需要这样做,但我在这里做了所有的解决方案所以不知道这件事是做什么的。请注意,这里的一些答案是旧的,模拟器的位置已经改变。 Snowcrash's answer似乎是最新的。

答案 11 :(得分:2)

您可以做的另一件事是将部署目标更改为最高值。这将阻止Scheme菜单显示旧版本。

要做到这一点,请访问: Target-&gt; Summary然后更改部署目标。

答案 12 :(得分:1)

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

转到/Applications/Xcode.app/Contents/Developer/Platforms并删除不需要的内容。 Xcode会好起来的。如果您有任何疑虑,那么您只需从垃圾箱中恢复即可。

答案 13 :(得分:1)

我写了一行bash脚本,该脚本会删除 ALL 您的模拟器:

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

答案 14 :(得分:1)

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

  1. 位于YOUR_MAC_NAME(例如Macintosh)-> Users-> YOUR_USERNAMEdaniel)-> {{1 }}-> Library-> Developer-> Xcode。离开那里,最新的消息,到今天为止是iOS Device Support,但将来会有所变化。 iOS版本的最高编号(此处为13.2.3 (17B111))表示它较新。

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

enter image description here

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

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

PS。只需通过转到Xcode-> Archives-> Xcode-> Window(或简单地Devices and Simulators + Simulators + { {1}}(使用键盘快捷键)并将其删除将无济于事。您确实需要执行上述步骤。

答案 15 :(得分:1)

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

iOS DeviceSupport

答案 16 :(得分:1)

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

PCollection<KV<Integer, String>> bod = stringCollec.
apply("addTime",WithTimestamps.of(us -> new Instant()))
.apply("Add Keys", ParDo.of(new AssignRandomKeys(3)));
bod.apply(
   Window.<KV<Integer, String>>into(FixedWindows.of(Duration.standardSeconds(4)))
 .triggering(Repeatedly.forever(AfterProcessingTime.pastFirstElementInPane().plusDelayOf(Duration.standardSeconds(1)))).withAllowedLateness(Duration.ZERO).discardingFiredPanes())
.apply(GroupIntoBatches.ofSize(BATCH_SIZE))
.apply("extract", ParDo.of(new DoFn<KV<Integer, Iterable<String>>, String>() {
      @ProcessElement
      public void process(ProcessContext c) {
       //send one full batch to API
    }));

要执行,请删除echo "rm -rf $(xcrun simctl list runtimes -j |\ jq ".runtimes[] | select(.isAvailable|not) | .bundlePath" | xargs)" 或在末尾添加echo

如果您没有| bash命令,可以使用jq

来获取。

答案 17 :(得分:1)

  1. 打开Xcode->转到窗口(从菜单栏)->设备和模拟器 ->单击模拟器->右键单击要删除的模拟器->单击删除

  2. 要删除以前通过Xcode作为额外组件安装的不需要的模拟器。

  • 打开终端

  • 键入 打开/ Library / Developer / CoreSimulator / Profiles / Runtimes

  • 删除不需要的模拟器

答案 18 :(得分:-1)

命令+空格

输入'模拟器'

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

在停靠栏中右键单击它,然后选择选项&gt;'在Finder中显示'

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

:)