fastlane - 如何确保构建使用 v14.x iOS/tvOS 模拟器?
问题描述
我们环境中的一些构建失败,因为构建使用的是 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 模拟器时才运行测试,而不必在字典中明确指出?
谢谢!
解决方案
目前 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,因此如果找不到指定的模拟器,测试将失败。
推荐阅读
- android - 启用和禁用 textviews 后在 relativelayout 中对齐视图
- jquery - 使用带有 html2canvas 的 jsPDF 调用方法 addHTML 时出错
- node.js - 制作 Node 包 Noble 的配方
- java - Spark 数据集映射行'无法解析方法映射(
)' - chef-infra - 厨师客户404
- wpf - XAML 列表框样式为带有标题的单选按钮组
- php - Static variables across all scripts/sessions php
- r - 二项式检验返回 p 值 = 0
- database - 在哪里存储可能敏感但不重要的信息
- fn - “fn run”命令在 MAC OS 上给出错误