ios模拟器在xcode 6中出现UDID

Posted

技术标签:

【中文标题】ios模拟器在xcode 6中出现UDID【英文标题】:ios simulator appear with UDID in xcode 6 【发布时间】:2014-11-30 10:32:12 【问题描述】:

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

【问题讨论】:

XCode using GUID instead of ios version number in Simulator Selection的可能重复 【参考方案1】:
<del>killall Xcode</del> - 杀死所有正在运行的 Xcode 进程。 <del>sudo killall -9 com.apple.CoreSimulator.CoreSimulatorService</del> - 杀死所有正在运行的 CoreSimulatorService 进程。 <del>rm -rf ~/Library/Developer/CoreSimulator/Devices</del> - 从所有模拟器中删除所有模拟器数据。 <del>open /Applications/Xcode.app</del> - 打开 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

【讨论】:

在我的情况下需要杀死进程才能解决问题。不过,仅从终端完成非常整洁 这个答案应该更新,解释问题的原因,解释终端命令的作用。 那行得通,但现在我没有模拟器。如何重新获得一组基本模拟器? “下载”窗口未列出 iOS 9.2 模拟器,而将其他模拟器显示为已下载。 我找到了:窗口 > 设备 > + > 添加模拟器。【参考方案2】:

如何解决

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 提交新雷达

【讨论】:

我已删除 ~/Devices/ 文件夹中的所有文件。但仍然得到这个。 你需要 SIGKILL 服务 ss 好(或只是重新启动)。 其他解决方案无效,但这个解决方案有效。 * 对我来说很关键,因为 ~/Library/Logs/CoreSimulator 也需要删除。 这对我有用。其他人没有完全解决我的问题。【参考方案3】:

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

gem install snapshot; snapshot reset_simulators

https://github.com/KrauseFx/snapshot

通过@saniul

【讨论】:

虽然当我这样做时,它会从我的 beta Xcode 7 安装中删除我的所有 sim,并且我的 Xcode 7 sim 在启动时崩溃,因为它假定至少安装了一个 sim。我必须在设备窗口中创建一个 Xcode 7 sim。【参考方案4】:

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

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

通常这些是没有操作系统的(显示 iOS:n/a)。

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

【讨论】:

好的,谢谢,但是我想复制旧的模拟器然后怎么做呢?? 你不应该直接复制它。转到 Preferences -> Downloads 并在 Components 下,下载您需要的模拟器。【参考方案5】:

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

【讨论】:

【参考方案6】:

正如@ameer-sheikh 所说,转到“窗口”>“设备” 您可能有多个设备具有相同的 iOS 版本。我遇到了同样的问题,在选择每个重复的设备并按删除后,我能够恢复我的设备下拉菜单的顺序

【讨论】:

以上是关于ios模拟器在xcode 6中出现UDID的主要内容,如果未能解决你的问题,请参考以下文章

无法安装“iOS 6.1 模拟器”XCode 5

Xcode 6.4 iOS 设备/模拟器和方案选项在 OS X El capitan 中消失

无法在 Xcode 中选择 iOS 模拟器

iOS模拟器视图控制器黑色背景Xcode 6.4

iOS 7 Popover 控制器在 xcode 6 下崩溃

在 Xcode 6 中的 iOS 6 模拟器中运行应用程序