SuperAPI AI 工具集

sentry-snapshots-cocoa

测试与质量

查看项目

更新于 10-15 01:55

技能介绍

用途

Sentry Snapshots for Apple/Cocoa 的目标是:为 Apple/Cocoa 项目生成快照图像,并将其上传到 Sentry Snapshots。它属于 Sentry for AI 技能集,用于在本地或 CI 中完成快照生成与上传的配置。

主要能力

  • 检测项目中已有的快照生成方案,包括 Point-Free 的 swift-snapshot-testing;当已有方案已经或能够输出 PNG/JPEG 时予以保留。
  • 在首次配置 Sentry 一方 SnapshotPreviews 方案时,使用 Sentry Wizard 的 appleSnapshots 流程。
  • 仅在向导不可用、无法在消歧后非交互解析目标、或在显式消歧后仍失败时,才使用手动配置。
  • 支持将生成的快照图像与元数据上传到 Sentry,并输出 Sentry URL 或 snapshot id。
  • 提供 GitHub Actions/CI 相关参考:单目标工作流、多目标/fan-out 工作流,以及 Point-Free swift-snapshot-testing 工作流。

使用方式

技能按“检测 → 路由 → 完成检查”的顺序执行。

检测阶段只做足以路由的判断,包括:查找 SnapshotPreviews、swift-snapshot-testing 等标识;查找 .xcodeproj;检查 fastlane/Fastfile、Gemfile;检查 SENTRY_AUTH_TOKEN、SENTRY_ORG、SENTRY_PROJECT 是否设置(只输出 set/unset,不打印密钥值)。记录已有 SnapshotPreviews 配置、已有快照生成器/库、输出目录、Xcode 项目目录、CI 提供方、Fastlane 与 Sentry 认证状态。对每个 .xcodeproj 匹配,记录其所在目录用于 --xcode-project-dir;例如 find 输出 ./MyApp/MyApp.xcodeproj 时,应传 ./MyApp,而不是 bundle 路径。

路由阶段按以下顺序解析:

  1. 选择或创建图像生成器:命名生成器优先;存在多个生成器且用户未选择时询问;已有非 SnapshotPreviews 生成器则保留;已有 SnapshotPreviews 则使用;无生成器时默认配置 SnapshotPreviews。
  2. 对于 SnapshotPreviews,如果没有 .xcodeproj 宿主应用或没有托管的 XCTest 目标,则在配置/验证/CI 前停止。保留其他生成器时不适用此停止条件。
  3. 配置或验证时按情况阅读对应参考文档:已有非 SnapshotPreviews 生成器读 references/snapshots.md;已有 SnapshotPreviews 读 references/snapshot-previews.md 与 references/snapshots.md;新建 SnapshotPreviews 读 references/wizard-setup.md;向导报告无 Swift previews 时,先询问再添加 previews 或选择其他生成器。
  4. 仅在图像生成器存在后处理 GitHub Actions/CI:Point-Free swift-snapshot-testing 读 references/github-actions-swift-snapshot-testing.md 与 references/snapshots.md;其他非 SnapshotPreviews 生成器读 references/snapshots.md 并适配现有 CI/上传;SnapshotPreviews 且仅一个模拟器、无 matrix/fanout/选择性 CI 读 references/github-actions-simple.md;SnapshotPreviews 且多模拟器、设备族、matrix 或任何选择性 CI 读 references/github-actions-fanout.md 与 references/snapshot-previews.md。

适用场景

  • 被要求“setup SnapshotPreviews”“setup Apple snapshot testing”“upload Apple snapshots to Sentry”等任务时。
  • 需要在 Apple/Cocoa 项目中配置快照生成并上传到 Sentry Snapshots。
  • 需要在 GitHub Actions 中为快照生成与上传配置 CI 工作流。

限制与注意事项

  • 纯 SwiftPM 包:停止并询问宿主应用/测试目标;不支持独立的 swift test 渲染。
  • 快照上传会将生成的图像与元数据发送到 Sentry。上传前需确认目标组织/项目与导出目录,并检查图像是否含客户数据或其他敏感内容。
  • 仅上传用户请求范围内选定的快照输出。
  • 完成检查要求:所选快照图像生成器已记录并按路由保留或配置;快照生成出现在相关本地或 CI 测试日志中;导出目录包含 .png 文件及生成的 .json sidecar;上传成功并打印 Sentry URL 或 snapshot id;基础分支上传为全量,选择性 PR 上传包含完整图像名清单。
  • 关于收费、价格、平台支持范围等具体信息,资料中暂未提供。