29

当我从 xcode 6 中选择模拟器时,我会得到多个选项来选择模拟器,但模拟器带有 UDID。请看下面的图片,请帮助我。提前致谢。

在此处输入图像描述

4

6 回答 6

40
killall Xcode
- 杀死所有正在运行的 Xcode 进程。
sudo killall -9 com.apple.CoreSimulator.CoreSimulatorService
- 杀死所有正在运行的 CoreSimulatorService 进程。
rm -rf ~/Library/Developer/CoreSimulator/Devices
- 从所有模拟器中删除所有模拟器数据。
open /Applications/Xcode.app- 打开 Xcode。

xcode 10 的上述步骤无效,请使用以下步骤:

xcrun simctl shutdown all
关闭所有设备

xcrun simctl list devices|grep -v "unavailable"|grep -Eo "[0-9A-F\-]{36}"
列出所有可用设备

xcrun simctl list devices|grep -v "unavailable"|grep -Eo "[0-9A-F\-]{36}"|xargs xcrun simctl delete 删除所有设备(注意:这是一行)

更多详情xcrun simctl help

于 2015-07-15T03:47:27.010 回答
21

在 Xcode 中,转到 Window -> Devices(快捷键是 Cmd+!)

在左侧窗格中,删除所有多余的模拟器设备(在左侧窗格中选择并按键盘上的删除)

通常这些是没有操作系统的(显示 iOS:n/a)。

当您尝试直接在 SDK 文件夹中复制较旧的模拟器版本而不是从 Xcode -> Preferences 安装它们时,通常会发生这种情况。

于 2014-10-14T14:17:46.773 回答
16

如何修复它

Xcode 使用设备版本来区分具有相同名称的设备。如果两个设备具有相同的名称和版本号,它将使用设备的 UDID。

一堆设备中的每一个都有 4 个(例如 iPhone 5s)。我怀疑其中一些是针对同一个 iOS 版本的。您应该删除一些重复项。签出xcrun simctl listxcrun simctl delete/或使用 Xcode.app 中的设备管理器(单击“-”删除设备)。

如何回到默认状态

# Ensure all possible clients of CoreSimulatorService are no longer running:

killall Xcode 2> /dev/null
killall Instruments 2> /dev/null
killall 'iOS Simulator' 2> /dev/null
killall Simulator 2> /dev/null
killall 'Simulator (Watch)' 2> /dev/null
killall ibtoold 2> /dev/null
killall simctl 2> /dev/null
# There may be others

# Kill the service itself
sudo killall -9 com.apple.CoreSimulator.CoreSimulatorService

# Remove all the data and logs
rm -rf ~/Library/*/CoreSimulator

为什么会发生这种情况:

CoreSimulatorService 将监视在 /Library/Developer/CoreSimulator/Profiles 中添加的新模拟器运行时(例如,当从 Xcode -> Preferences -> Downloads 下载它们时)。安装新运行时时,CoreSimulatorService 将为该运行时创建一组初始设备。

如果同时运行多个 CoreSimulatorService 实例,则会出现此问题。每个 CoreSimulatorService 实例都将创建自己的设备集(但其客户端首先只会看到该实例的集)。在后续启动时(例如:重新启动后),将看到两个副本。由于在与使用已发布 Xcode.app 相同的登录会话中测试 Xcode.app 的 beta 版本,或者在更新之前和之后使用过 Xcode.app,人们可能会进入同时运行多个 CoreSimulatorService 副本的状态通过应用商店。

如果您知道此错误可能出现的任何其他方式,请在http://bugreport.apple.com提交新雷达

于 2014-10-06T13:52:49.597 回答
0

转到窗口-> 设备(快捷键是 Cmd+Shift+2) 在左侧窗格中,删除所有多余的模拟器设备(在左侧窗格中选择并按键盘上的删除)通常这些是没有操作系统的设备(显示 iOS :不适用)。当您尝试直接在 SDK 文件夹中复制较旧的模拟器版本而不是从 Xcode -> Preferences 安装它们时,通常会发生这种情况。

于 2015-08-05T14:06:49.497 回答
0

正如@ameer-sheikh 提到的,转到窗口> 设备您可能有多个具有相同iOS 版本的设备。我遇到了同样的问题,在选择每个重复的设备并按删除后,我能够恢复我的设备下拉菜单的顺序

于 2015-07-22T18:37:14.583 回答
-1

另一个答案中的 bash 命令可能更简单,但您可以尝试这个更简单但更复杂的解决方案:

gem install snapshot; snapshot reset_simulators

https://github.com/KrauseFx/snapshot

通过@saniul

于 2015-08-04T18:32:34.013 回答