XCode在模拟器选择中使用GUID而不是iOS版本号

Gav*_*ler 37 xcode ios-simulator xcode6

在上个月XCode的各种更新过程中的某个地方,iOS版本从我的模拟器选择中删除(图片如下).任何人都知道如何解决这个问题?

XCode模拟器显示GUID而不是iOS版本

Jer*_*oia 52

如何解决它

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

你有一堆设备中的每一个(例如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
Run Code Online (Sandbox Code Playgroud)

为什么会发生这种情况:

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

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

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


小智 17

从"设备"窗口删除同一版本的多个副本对我来说非常有用.

  • 这**回答"任何人都知道如何解决这个问题?"的问题.虽然Kijit Desai没有假设为什么会出现多个相同版本的模拟器,但是解决这种情况的最直接的答案(全部来自Xcode本身)确实是从Xcode的Devices窗口中删除了复制版本的sims. (7认同)