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

Posted

技术标签:

【中文标题】XCode 在模拟器选择中使用 GUID 而不是 iOS 版本号【英文标题】:XCode using GUID instead of iOS version number in Simulator Selection 【发布时间】:2014-12-19 09:53:55 【问题描述】:

在上个月 XCode 的各种更新中,ios 版本从我的模拟器选择中删除(下图)。有人知道如何解决这个问题吗?

【问题讨论】:

显示 GUID 以区分具有相同设备和 iOS 版本的多个模拟器。如果您在“设备”窗口中删除重复项,列表将被清理。 可能的欺骗:***.com/questions/26211593/… 【参考方案1】:

如何解决

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

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

如果您知道此错误可能出现的任何其他方式,请在http://bugreport.apple.com 提交新雷达

【讨论】:

我要补充一点,使用 (+) 按钮很容易重新添加模拟器,所以不必担心删除错误的模拟器(除非您在您要保存的模拟器)。【参考方案2】:

从“设备”窗口中删除同一版本的多个副本对我有用。

【讨论】:

确实回答了“有人知道如何解决这个问题吗?”这个问题。虽然 Kijit Desai 没有假设为什么会出现多个相同版本的模拟器,但解决这种情况的最直接的答案(全部来自 Xcode 本身)确实是从 Xcode 的“设备”窗口中删除重复版本的模拟器。跨度> 【参考方案3】:

我发现这个脚本是最有效的。我清除了现有模拟器的列表,然后根据已安装的平台重新构建它。

见https://gist.github.com/cabeca/cbaacbeb6a1cc4683aa5

【讨论】:

以上是关于XCode 在模拟器选择中使用 GUID 而不是 iOS 版本号的主要内容,如果未能解决你的问题,请参考以下文章

模拟器名称在 Xcode 6.2 中显示为 id 而不是 os 名称

Xcode 的 OCUnit 测试能否在 iOS 设备而不是模拟器上运行

将 Xcode 的目标设置为 iPhone 而不是 iPad

Xcode 中的存档按钮变灰

Xcode 版本 5.1.1 (5B1008) - 在 iOS 7.0 而不是 7.1 上运行模拟器

仅在 xcode 中启动 iPhone 目标,而不是 OSwatch 目标,当两者都存在于项目中时