Xcode 6.4 显示具有唯一 ID 的重复 'Simulators'

Xcode 6.4 showing duplicate 'Simulators' with Unique Id

直到昨天,Xcode 一切正常。它显示模拟器为:

但是今天,当我打开它时,模拟器列表变成了:

每个模拟器都可以看到两次,名字后跟一个唯一的id。我还观察到同名模拟器也是两个不同的实例。

任何人都可以帮助我,如何摆脱这个?或者怎么重置。它给人一种奇怪的感觉。

任何建议都会有所帮助。

转到终端查看模拟器列表使用:

xcrun simctl list

使用 id 删除重复项:

xcrun simctl delete <ID>

例如

xcrun simctl delete 4B645F13-D130-412D-8EB4-B49BE7E2D7DA

看起来很多模拟器在更新时被分成了不同的设备。所以听起来你想做的是减少你的输出决定列表。

要查看模拟器列表,请在菜单栏上转到:Window > 设备。在这里,您将看到输出列表中显示的所有模拟器。没有理由不删除并通过添加您想要的模拟器重新开始

我最终创建了一个脚本来删除 Xcode 模拟器重复项:

https://gist.github.com/buscarini/6ec0ef1385f47fdbc505

通过进入菜单->Window->设备并删除重复项来修复它(如果您看到 iPhone 6 的多个模拟器,例如删除除一个以外的所有模拟器)。

我有更简单的方法来解决这个问题。

运行 以下:

xcrun simctl list devices | grep -v '^[-=]' | cut -d "(" -f2 | cut -d ")" -f1 | xargs -I {} xcrun simctl delete "{}"

来自sunnyxx's weibo的解决方案:

1.quit Xcode 和 iOS 模拟器

2.killall -9 com.apple.CoreSimulator.CoreSimulatorService

3.rm -rf ~/Library/Developer/CoreSimulator/Devices

4.reopen Xcode

编辑:sudo 似乎没有必要杀死 SimulatorService.This 解决方案将删除所有存在的模拟器并重新创建所有可用的版本和类型模拟器。

您可以使用以下命令:

snapshot reset_simulators

如果您还没有安装快照:

sudo gem install snapshot.

有关 快照 的更多信息:https://github.com/krausefx/snapshot#installation

Doz 的 oneliner 很好,但是提取模拟器 UUID 的部分在某些 iPad 设备上失败,例如 'iPad Pro (12.9 inch)',因为它们的名称中有括号。我改写为使用 grep 而不是 cut 来解决这个问题:

xcrun simctl list devices | grep -o '[A-F0-9]\{8\}-[A-F0-9]\{4\}-[A-F0-9]\{4\}-[A-F0-9]\{4\}-[A-F0-9]\{12\}' | xargs -I {} xcrun simctl delete "{}"