0

我们环境中的一些构建失败,因为构建使用的是 13.X iOS/tvOS 模拟器,并且由于某种原因会导致问题。我对我们的 Fastfile 进行了更改,以便构建使用 14.2 模拟器,现在构建成功了。

这是我对快速文件所做的更改。

首先,我声明了一个字典:

XCODE_DESTINATION = {
  iphoneos: "generic/platform=iOS",
  iphonesimulator: "platform=iOS Simulator,OS=14.2,name=iPhone 11 Pro Max",
  appletvos: "generic/platform=tvOS",
  appletvsimulator: "platform=tvOS Simulator,OS=14.2,name=Apple TV 4K"
}

然后,在 iOS 和 tvOS 的 run_tests 通道中,我引用了 iphonesimulator 和 appletvsimulator:

    run_tests(
      destination: XCODE_DESTINATION[:iphonesimulator],
      workspace: WORKSPACE_NAME,
      scheme: options[:scheme_tests]
    )
    run_tests(
      destination: XCODE_DESTINATION[:appletvsimulator],
      workspace: WORKSPACE_NAME,
      scheme: options[:scheme_tests]
    )

即使这个解决方案解决了这个问题,我真的不希望 XCODE_DESTINATION 字典必须专门引用操作系统版本和特定设备。

有没有一种方法可以配置这个 Fastfile,以便它仅在 XCode 中存在 14.X 模拟器时才运行测试,而不必在字典中明确指出?

谢谢!

4

1 回答 1

2

目前 fastlane 不支持此功能,因此请随意创建问题 -> https://github.com/fastlane/fastlane/issues

但是您可以在以下位置指定模拟器和版本run_tests

run_tests(
      devices: ['iPhone 11 Pro Max (14.2)'],
      workspace: WORKSPACE_NAME,
      scheme: options[:scheme_tests],
      ensure_devices_found: true
    )

此外,您可以设置ensure_devices_found为 true,因此如果找不到指定的模拟器,测试将失败。

于 2021-03-17T20:10:11.533 回答