如何确保构建使用 v14.x iOS/tvOS 模拟器?
Posted
技术标签:
【中文标题】如何确保构建使用 v14.x iOS/tvOS 模拟器?【英文标题】:How can I make sure that builds are using v14.x iOS/tvOS simulators? 【发布时间】:2021-03-16 15:42:31 【问题描述】:我们环境中的某些构建失败,因为这些构建使用的是 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 dict 必须专门引用操作系统版本和特定设备。
有没有一种方法可以配置这个 Fastfile,使其仅在 XCode 中存在 14.X 模拟器时才运行测试,而无需在 dict 中明确指出?
谢谢!
【问题讨论】:
【参考方案1】:目前 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,因此如果找不到指定的模拟器,测试将失败。
【讨论】:
以上是关于如何确保构建使用 v14.x iOS/tvOS 模拟器?的主要内容,如果未能解决你的问题,请参考以下文章
分享相同的游戏中心排行榜 iOS / tvOS / OS X?