【问题标题】:iOS Simulator devices listed twice in Xcode run destinations listiOS 模拟器设备在 Xcode 运行目标列表中列出两次
【发布时间】:2014-11-07 22:01:27
【问题描述】:

Xcode 在每个 iOS 模拟器设备的运行目标列表中显示重复条目。

运行目标的屏幕截图:

设备菜单截图:

我尝试完全关闭和打开 Xcode,但并没有解决问题。重启也没有解决问题。

我将 iOS 7.1 SDK 添加到 Xcode.app 的包中。

【问题讨论】:

    标签: xcode ios-simulator


    【解决方案1】:

    我怀疑如果您重新启动服务,问题就会消失:

    退出 Xcode、Instruments 和 iOS 模拟器,然后在 Terminal.app 中运行:

    killall -9 com.apple.CoreSimulator.CoreSimulatorService
    

    我以前从未见过这样的问题,即设备本身在运行目标列表中确实存在重复。其他报告称确实存在重复的设备(具有唯一 UDID),但在您的情况下,您看到的是完全相同的设备的重复。

    如果问题继续重现,请启用调试日志记录:

    defaults write com.apple.iphonesimulator DebugLogging -bool YES
    defaults write com.apple.CoreSimulator DebugLogging -bool YES
    

    在启用调试日志记录的情况下重现问题,然后在 http://bugreport.apple.com 提交错误报告,包括 ~/Library/Logs/CoreSimulator/*.log 和 /var/log/system.log。

    如果您知道自己是如何进入这种状态的,请分享。

    编辑:

    根据 cmets 中的讨论,该问题是由添加 iOS 7.1 SDK(不是模拟器 SDK,设备 SDK)引起的。这不是受支持的配置,但这样做会导致此问题肯定很奇怪。请注意,您应该始终针对最新的 SDK 进行构建,并将部署目标设置为您希望部署到的最低版本。

    【讨论】:

    • 我添加了 iOS 7.1 SDK。我怀疑它可能会做这样的事情。也许我添加了错误的路径。将 iOS 7.1 SDK 添加到 Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs 是否可以解决此问题?
    • 不支持,但我不认为它会导致这样的问题。顺便说一句,您为什么使用 7.1 SDK?您应该使用 8.0(或 8.1)SDK
    • 我尝试在 iOS 7 设备上运行设备。将部署目标从 8.1 更改为 7 就足够了吗?有人告诉我将 Base SDK 更改为 ios 7.1。我会删除它并重试。
    • 是的,如果您想在 iOS 7.0 及更高版本的设备上运行,您只需将部署目标设置为 7.0。您不应安装较旧的 SDK。请告知某人他们弄错了。
    • 以这种方式添加 SDK 会导致此问题。我删除了那个sdk,它变成了正常。谢谢。
    【解决方案2】:

    我也偶然发现了这个问题,因为随着时间的推移,我确实手动(通过 Xcode)安装了各种额外的 iOS 模拟器。

    所以,我真正想要的是摆脱旧的和过时的模拟器版本。

    1. 退出 Xcode 和 iOS 模拟器

    2. sudo killall -9 com.apple.CoreSimulator.CoreSimulatorService

    3. rm -rf ~/Library/Developer/CoreSimulator/Devices

    4. 重新打开 Xcode

    【讨论】:

      【解决方案3】:

      要更改和重命名您的模拟器:在 xCode 中转到 Window -> Devices 并按底部角落的 plus 并添加您希望的模拟器或 minus 删除。

      【讨论】:

      • 首先谢谢,但是我不想看到模拟器的标识符,那我该怎么办?正如我在屏幕截图中指出的那样,即使有 1 台装有 iOS 8.1 的设备,运行菜单也会显示其中的 2 台。
      • 删除这些模拟器并添加新的。是否会再次出现?
      • 是的,同样的事情出现了。将 iOS 7.1 SDK 添加到 Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs 是否有此问题?
      • @taskiner - 为什么要添加旧版 SDK?新的覆盖旧的。
      【解决方案4】:

      不确定为什么会发生这种情况,但这些类似 UDID 的字符串可能会在您的应用安装到模拟器后引用它们的目录标识符。

      【讨论】:

      • 是的,你是对的,它们是目录标识符。但我不想看到它们,有没有不看目录标识符的选项?为什么会有重复的模拟器?
      • 不,那些 UDID 是 iOS 模拟器设备的 UDID(唯一设备标识号)。
      猜你喜欢
      • 2015-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-04
      • 2013-01-08
      • 2020-01-02
      • 2015-01-01
      • 1970-01-01
      相关资源
      最近更新 更多