如何使用 fastlane 重置特定 Xcode 版本的模拟器?

Posted

技术标签:

【中文标题】如何使用 fastlane 重置特定 Xcode 版本的模拟器?【英文标题】:How to reset simulators for specific Xcode version using fastlane? 【发布时间】:2018-10-05 08:42:12 【问题描述】:

gitlab-ci.yml 内我有:

测试: 阶段:测试 before_script: - killall“模拟器”||真的 脚本: //如何在这里选择合适的xcode? - bundle exec fastlane 快照 reset_simulators --force - 捆绑执行快车道测试 after_script: - killall“模拟器”||真的 - rm -rf ~/Library/Developer/Xcode/Archives ||真的 文物: 名称:“员工_$CI_PIPELINE_ID” 路径: - 快车道/输出/覆盖 何时:on_success 标签: - ios

我为什么需要这样做?

因为reset_simulators --force 重置了与我使用的 xcode 版本不同的模拟器;)我如何强制它选择好的 xcode 版本?

【问题讨论】:

【参考方案1】:

如果你想为scanrun_tests 使用这个

现在支持 reset_simulator

启用此选项将在运行应用程序之前自动擦除模拟器

SCAN_RESET_SIMULATOR

打电话

xcversion(version: 11.0)
run_tests(
    reset_simulator: true
)

【讨论】:

【参考方案2】:

看起来您有自己的Fastfile,其中有您的test 通道。我建议你在那里重置模拟器。然后在重置之前添加xcode_select调用。

例如:

lane :test do
  xcode_select('/Applications/Xcode9.4.1.app')
  Snapshot::ResetSimulators.clear_everything!(nil, true) # what reset_simulators ends up calling
  # your other code
end

【讨论】:

【参考方案3】:

你尝试过快车道动作“reset_simulator_contents”

这将重置测试机器上运行的所有模拟器。

【讨论】:

以上是关于如何使用 fastlane 重置特定 Xcode 版本的模拟器?的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 Fastlane 脚本添加 Xcode 本地化语言

如何使用 fastlane Fastfile 通道自动化 xcode 清理过程

更改特定目标 Fastlane 的版本和内部版本号

将 fastlane/gym 与 xcode build 进行比较

我的 Xcode 可以构建,但 Fastlane 不行

Fastlane 与 Xcode 的集成