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

37

在过去一个月的XCode各种更新中,我的模拟器选择列表中不再显示iOS版本(如下图所示)。有人知道如何解决吗?

XCode模拟器显示GUID而非iOS版本


1
它显示GUID以区分具有相同设备和iOS版本的多个模拟器。如果您在“设备”窗口中删除重复项,则列表将被清理。 - Bill
可能是重复问题:https://dev59.com/PF8d5IYBdhLWcg3w-mbX - Steve Moser
3个回答

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

可能出现这种情况的原因:

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

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

如果您知道此错误可能发生的其他方式,请在http://bugreport.apple.com上提交新的radar。


我想补充一下,使用“+”按钮可以轻松添加模拟器,所以不要太担心删除错误的模拟器(除非您有重要数据需要保存在该模拟器上)。 - ɲeuroburɳ

17

在“设备”窗口中删除多个副本的相同版本对我有帮助。


7
这确实回答了问题“有人知道如何解决这个问题吗?”虽然Kijit Desai没有猜测为什么会出现多个相同版本的模拟器,但最简单直接的方法(全部在Xcode内完成)来解决这种情况,就是从Xcode的设备窗口中删除重复版本的模拟器。 - greymouser

3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接