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

Fastlane Snapshot无报错但无法生成截图问题求助

Fastlane Snapshot 设备截图全失败排查方案

问题背景

运行Fastlane snapshot无报错,但所有目标设备截图任务失败,输出如下:

+------------------------------+
|       snapshot results       |
+----------------------+-------+
| Device               | en-US |
+----------------------+-------+
| iPhone 15 Pro Max    |  ❌   |
| iPad Pro (12.9-inch) |  ❌   |
+----------------------+-------+

同时项目存在整数隐式转换、废弃函数警告,已尝试fastlane init和fastlane init swift无效。环境:M1 MacBook Pro (2020)、macOS 14.0、Xcode 15 + 对应命令行工具。

排查与修复步骤

1. 验证模拟器可用性

  • 打开Xcode Simulator,确认iPhone 15 Pro Max和iPad Pro (12.9-inch)模拟器已安装并能正常启动
  • 执行xcrun simctl list,检查目标设备状态,确保无Unavailable或异常状态
  • M1芯片设备:尝试右键Simulator.app→显示简介→勾选「使用Rosetta打开」,重启模拟器后重试截图任务

2. 修复项目构建警告

  • 优先解决项目中的整数隐式转换和废弃函数警告:Xcode 15对旧代码兼容性更严格,这些警告可能触发隐性构建失败
  • 检查captureScreenshot scheme的Build Settings,若开启Treat Warnings as Errors,临时关闭后测试

3. 修正Snapshot配置

  • 关闭Headless模式:当前配置headless: true,Xcode 15的headless模拟器存在兼容性问题,修改Fastfile中snapshot参数为headless: false,可视化运行观察是否有交互阻塞
  • 修复输出路径:Summary中output_directory显示路径断裂,修正为完整有效路径(如./fastlane/screenshots)
  • 补充启动参数:将launch_arguments从空字符串改为["-UI_TESTING_ENABLED YES", "-ResetOnLaunch YES"],确保UI测试环境正常初始化

4. 手动验证UI测试流程

  • 在Xcode中直接运行captureScreenshot scheme的UI测试用例,确认测试能完整执行到snapshot()调用步骤
  • 检查测试代码,确保每个需要截图的场景都正确调用了snapshot("自定义截图名称")方法

5. 重置环境缓存

  • 清理模拟器数据:执行xcrun simctl erase all,重启模拟器
  • 清理Fastlane缓存:执行fastlane clean后重新运行snapshot
  • 确认Xcode命令行工具版本:执行xcode-select -p,确保输出为/Applications/Xcode.app/Contents/Developer,若不符则用sudo xcode-select -s /Applications/Xcode.app切换

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 11:25:29