Xcode 11 单元测试:未列出装有 iOS 12.* 的设备

Posted

技术标签:

【中文标题】Xcode 11 单元测试:未列出装有 iOS 12.* 的设备【英文标题】:Xcode 11 Unit Test: Devices with iOS 12.* are not listed 【发布时间】:2019-09-24 10:20:37 【问题描述】:

我正在尝试使用 ios 12.* 运行我的单元测试(我已经下载了模拟器),但 Xcode 没有在列出所有可用设备的下拉视图中显示设备。我什至尝试添加额外的模拟器,但下拉视图中只列出了 iOS 13 的设备。我做错了什么?

注意:项目 iOS 部署目标是 12.0。

图片 1:这些都是支持 iOS 13 的设备:

图片 2: 如您所见,可以使用 iOS 12 和 iOS 12.2 的设备:


解决方案:您需要将 IPHONEOS_DEPLOYMENT_TARGET 显式设置为 iOS 12.0 用于单元测试目标。我的错误是我只为项目设置了部署目标。

【问题讨论】:

检查部署目标。 @AndrewRomanov 发生了一些奇怪的事情。部署目标已设置为 12.0。当我再次明确选择 12.0 时,所有设备都在下拉窗口中显示给我,但是当我尝试运行我的单元测试时,我收到以下警告:标题:“运行目标 iPhone 8 Plus 对您选择的测试无效履行。”消息:“请选择支持您希望执行的测试的运行目标。” @AndrewRomanov 更新:天哪,成功了!我必须为单元测试目标明确设置 IPHONEOS_DEPLOYMENT_TARGET。这解决了问题。 这也解决了我的问题。 @AndrewRomanov 花了我一些时间来找到实际更改单元测试设置的位置,因为我对构建设置仍然很陌生。在 Xcode 11 的项目编辑器中,选择 Build Settings。在您刚刚单击的行的左侧,显示了构建设置的目标。点击下拉箭头,选择单元测试目标,然后在页面下到“部署”部分,调整到想要的iOS版本。 【参考方案1】:

要更改部署目标,请在导航器中点击您的项目文件。 选择常规选项卡,在“部署目标”部分中,您可以找到目标和设备:

或者选择 Build Settings 选项卡并找到 iOS Deployment Target 设置:

您应该为应用程序中的所有目标选择适当的部署目标。 (例如,您的应用程序可以支持 iOS 7 并将部署目标设为 7.0,但您的应用程序或测试目标中的扩展只能支持 >= iOS 8.0,并且应为该目标选择 8.0 的部署目标)

【讨论】:

以上是关于Xcode 11 单元测试:未列出装有 iOS 12.* 的设备的主要内容,如果未能解决你的问题,请参考以下文章

未检测到装有 iOS 5.1 的 iPad - Xcode 4.3.1

iOS 11 + Xcode 9.0 = 无音频单元

我是不是必须升级到 Lion 才能在装有 iOS 5.1 的 iPad 上进行测试?

iOS 12 iPad 拒绝启动请求 - Xcode

Bundle ID 未列出 App store 连接新应用列表 (Xcode 11.4.1)

Xcode 9.4 未显示单元测试