You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Fastlane run_tests指定设备无效,默认使用iPhone SE模拟器问题求助

问题排查与解决方案

可能原因

  1. 设备名称匹配不精确:Xcode模拟器的完整名称通常包含iOS版本号,仅指定设备型号时,Fastlane可能因匹配逻辑问题选中错误设备(尤其当列表中存在同架构设备时)。
  2. Scheme配置覆盖:你的TestsScheme可能在Xcode中默认绑定了iPhone SE (3rd generation)作为测试目标,导致Fastlane的设备配置被覆盖。
  3. 旧版本Fastlane存在bug:你使用的fastlane 2.210.1属于较旧版本,设备匹配逻辑存在已知问题。

具体解决步骤

1. 获取精确的模拟器信息

执行以下命令,列出所有可用模拟器的完整名称与唯一UDID:

xcrun simctl list devices

从输出中找到目标iPad mini (6th generation)的完整条目,示例格式如下:

iPad mini (6th generation) (XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX) (Shutdown) iOS 16.4

2. 精准指定设备(二选一)

  • 方式一:使用UDID(最可靠)
    用设备的唯一UDID替换名称,避免名称匹配歧义:
    run_tests(
      scheme: "TestsScheme",
      device: "XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", # 替换为实际UDID
      output_directory: "./report_unit_tests",
      skip_slack: true,
    )
    
  • 方式二:使用完整设备名称
    复制xcrun simctl输出中的完整名称(包含iOS版本),更新配置:
    run_tests(
      scheme: "TestsScheme",
      device: "iPad mini (6th generation) iOS 16.4", # 替换为实际完整名称
      output_directory: "./report_unit_tests",
      skip_slack: true,
    )
    

3. 检查并修正Scheme配置

打开Xcode编辑TestsScheme:

  • 切换到Test阶段,查看Destination设置。
  • 若当前固定为iPhone SE (3rd generation),改为Any iPad或直接选择目标模拟器,确保Fastlane的配置能生效。

4. 升级Fastlane版本

执行命令升级到最新稳定版,修复旧版本的设备匹配bug:

bundle update fastlane

内容的提问来源于stack exchange,提问作者Wouter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 05:25:55