用途:为 Apple/Cocoa 项目搭建 Sentry Snapshots,生成快照图片并上传到 Sentry。
主要能力:先检测项目中已有的快照生成方案,包括 Point-Free swift-snapshot-testing;若已能输出 PNG/JPEG 则保留。仅在首次搭建 Sentry 一方 SnapshotPreviews 时使用 Sentry Wizard 的 appleSnapshots 流程;向导不可用、无法非交互解析目标或明确消歧后仍失败时,才改用手动配置。
使用方式:先做路由检测,例如查找 SnapshotPreviews、swift-snapshot-testing 相关文件,查找 .xcodeproj,检查 fastlane/Fastfile、Gemfile 以及 SENTRY_AUTH_TOKEN、SENTRY_ORG、SENTRY_PROJECT 是否设置(不打印密钥值)。记录已有生成器、输出目录、Xcode 工程目录、CI、Fastlane 与 Sentry 认证信息。对每个 .xcodeproj 记录其所在目录作为 --xcode-project-dir(如 ./MyApp/MyApp.xcodeproj 应传 ./MyApp)。路由顺序:命名生成器优先;多个生成器且用户未选择则询问;已有非 SnapshotPreviews 生成器则保留;已有 SnapshotPreviews 则直接使用;无生成器则默认搭建 SnapshotPreviews。若为 SnapshotPreviews 且没有 .xcodeproj 宿主应用或托管 XCTest 目标,则停止。之后按需阅读对应参考文档(wizard-setup、snapshot-previews、snapshots、github-actions-simple、github-actions-fanout、github-actions-swift-snapshot-testing)。CI 仅在已有图片生成器后配置。
适用场景:Apple/Cocoa 项目的快照测试与 Sentry 上传,含单模拟器或多目标 GitHub Actions 流程。
限制:纯 SwiftPM 包不支持独立 swift test 渲染,需提供宿主应用/测试目标;向导报告无 Swift 预览时需先询问;基础分支上传为全量,选择性 PR 上传需包含完整图片名清单。完成检查包括生成器已记录、日志出现快照生成、导出目录含 .png 及 .json 附属文件、上传成功并输出 Sentry URL 或快照 id。