【问题标题】:How do I change the iOS version for the Simulator?如何更改模拟器的 iOS 版本?
【发布时间】:2017-04-01 15:58:03
【问题描述】:

环境:版本 8.2 beta (8C30a)

我的架构仅列出设备。
如何在模拟器中更改iOS版本

我可以看到可用的 iOS 模拟器...

...但它们未在架构列表中列出。
它们也不是在模式管理器中区分 iOS 版本的方法。

【问题讨论】:

    标签: ios-simulator xcode8


    【解决方案1】:

    可用模拟器列表由三个因素决定:

    1. 它不会显示 iOS 版本早于当前应用部署目标的模拟器。如果您想查看一些最近的、以前的 iOS 模拟器,请确保您的应用程序的部署目标已相应设置。

    2. 如果你去Xcode的“Preferences”-“Components”,可以确认你的机器上安装了哪些iOS模拟器。

    3. 在 Xcode 的“设备”窗口中(shift+command+2),如原始问题中的快照所示,您可以为您的 Xcode 环境配置特定的模拟器设备。

    【讨论】:

    • 如果我将部署目标降低到 iOS 9.3,我将无法编译我的 iOS-10 API。我想合并 iOS 10 和 9 API 并相应地确定运行时课程。如果我不将部署目标设置为 iOS 10,我就无法做到这一点。一旦进入 iOS 10,我应该能够在代码中使用编译器标志来确定 iOS 特定的逻辑过程。但是我可以使用 iOS 9 模拟器....难题。
    • 在 Swift 中,您需要将 iOS 10 API 包装在 if #available(iOS 10, *) { ... } 中。
    • 我知道...但首先我必须将部署目标设置为 iOS 10。但是这样做,我错过了架构中列出的 iOS 9.0+ 模拟器;我又回到了 1 号广场。
    • 不,将您的部署目标设置为 iOS 9(或其他),然后在您的 Swift 代码中,使用 if #available(iOS 10, *) { ... } 包装您的 iOS 10 API,这将使“xxx 仅在 iOS 10 上可用”静音" 错误信息。
    • 听起来基本 SDK 和部署目标之间存在混淆。 Rob 是对的,将您的部署目标设置为您想要支持的 MINIMUM sdk(所以 9)。只要您的 Base SDK 设置为 10,您仍然可以使用 iOS10 API。如果两者都设置为 10,您将无法在 iOS 9 模拟器上运行。你甚至不能在 iOS9 设备上运行!
    【解决方案2】:

    在添加了 @availability#availability 标志后,我可以在旧版本目标下成功编译,我注意到 iOS 又回来了:

    【讨论】:

      【解决方案3】:

      打开您的 xcode 并按command + shift + 2

      点击左下角+按钮,你的新模拟器需要iOS版本。

      点击create,现在就可以使用新模拟器了。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-12-11
        • 1970-01-01
        • 1970-01-01
        • 2020-08-25
        • 1970-01-01
        • 2013-07-01
        • 1970-01-01
        相关资源
        最近更新 更多