在模拟器select中使用GUID代替iOS版本号的XCode
在上个月XCode的各种更新期间,iOS版本从我的模拟器select中删除(下面的图片。)任何人都知道如何解决这个问题?
如何解决它
Xcode使用设备版本来消除具有相同名称的设备的歧义。 如果两个设备具有相同的名称和版本号,则将使用设备的UDID。
你有一堆设备(如iPhone 5s)中的每一个4。 我怀疑他们中的一些是相同的iOS版本。 你应该删除一些重复的东西。 查看xcrun simctl list
和xcrun simctl delete
或者使用xcrun simctl delete
的设备pipe理器(点击“ – ”删除设备)。
如何恢复到默认状态
# 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将为该运行时创build一组初始设备。
如果同时运行多个CoreSimulatorService实例,则会出现此问题。 每个CoreSimulatorService实例将创build自己的一组设备(但其客户端将只能看到该实例的集合)。 在后续的启动(例如:重新启动后),这两个副本将被看到。 我们可以进入同一时间运行CoreSimulatorService的多个副本的状态,这是因为在Xcode.app的testing版本中,在与使用发布的Xcode.app相同的login会话中testingbeta版本,或者在更新之前和之后使用Xcode.app通过App Store。
如果您知道这个错误可能会发生,请在http://bugreport.apple.com上提供一个新的雷达。;
从“设备”窗口中删除相同版本的多个副本对我来说是个诀窍。
我发现这个脚本是最有效的。 我清除了现有模拟器的列表,而不是基于已安装的平台重build它。