当我从 xcode 6 中选择模拟器时,我会得到多个选项来选择模拟器,但模拟器带有 UDID。请看下面的图片,请帮助我。提前致谢。
6 回答
killall Xcode
- 杀死所有正在运行的 Xcode 进程。
sudo killall -9 com.apple.CoreSimulator.CoreSimulatorService
- 杀死所有正在运行的 CoreSimulatorService 进程。
rm -rf ~/Library/Developer/CoreSimulator/Devices
- 从所有模拟器中删除所有模拟器数据。
- 打开 Xcode。
open /Applications/Xcode.app
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
在 Xcode 中,转到 Window -> Devices(快捷键是 Cmd+!)
在左侧窗格中,删除所有多余的模拟器设备(在左侧窗格中选择并按键盘上的删除)
通常这些是没有操作系统的(显示 iOS:n/a)。
当您尝试直接在 SDK 文件夹中复制较旧的模拟器版本而不是从 Xcode -> Preferences 安装它们时,通常会发生这种情况。
如何修复它
Xcode 使用设备版本来区分具有相同名称的设备。如果两个设备具有相同的名称和版本号,它将使用设备的 UDID。
一堆设备中的每一个都有 4 个(例如 iPhone 5s)。我怀疑其中一些是针对同一个 iOS 版本的。您应该删除一些重复项。签出xcrun simctl list
和xcrun 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提交新雷达
转到窗口-> 设备(快捷键是 Cmd+Shift+2) 在左侧窗格中,删除所有多余的模拟器设备(在左侧窗格中选择并按键盘上的删除)通常这些是没有操作系统的设备(显示 iOS :不适用)。当您尝试直接在 SDK 文件夹中复制较旧的模拟器版本而不是从 Xcode -> Preferences 安装它们时,通常会发生这种情况。
正如@ameer-sheikh 提到的,转到窗口> 设备您可能有多个具有相同iOS 版本的设备。我遇到了同样的问题,在选择每个重复的设备并按删除后,我能够恢复我的设备下拉菜单的顺序
另一个答案中的 bash 命令可能更简单,但您可以尝试这个更简单但更复杂的解决方案:
gem install snapshot; snapshot reset_simulators
https://github.com/KrauseFx/snapshot
通过@saniul