繁体   English   中英

ios模拟器在xcode 6中显示为UDID

[英]ios simulator appear with UDID in xcode 6

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

在此输入图像描述

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

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

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

通常这些是没有操作系统的(显示iOS:不适用)。

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

如何解决它

Xcode使用设备版本来消除具有相同名称的设备的歧义。 如果两个设备具有相同的名称和版本号,则它将使用设备的UDID。

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

如何回到默认状态

# 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下载它们时 - >首选项 - >下载)。 安装新运行时时,CoreSimulatorService将为该运行时创建一组初始设备。

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

如果您了解此错误可能产生的任何其他方式,请在http://bugreport.apple.com上提交新的雷达

正如@ ameer-sheikh所提到的,请转到Window> Devices您可能拥有多个具有相同iOS版本的设备。 我有同样的问题,在选择每个重复设备并按下删除后,我能够将订单恢复到我的设备下拉列表

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

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

gem install snapshot; snapshot reset_simulators

https://github.com/KrauseFx/snapshot

通过@saniul

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM