skills/sentry-snapshots-cocoa/SKILL.md
Full Sentry Snapshots setup for Apple/Cocoa projects. Use when asked to "setup SnapshotPreviews", "setup Apple snapshot testing", "upload Apple snapshots to Sentry", "setup Apple snapshot GitHub Actions", or "setup Apple selective snapshot testing".
npx skillsauth add getsentry/sentry-for-claude sentry-snapshots-cocoaInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
All Skills > Feature Setup > Sentry Snapshots
swift-snapshot-testing; preserve it when it already emits or can emit PNGs or JPEGs.appleSnapshots flow only when setting up Sentry's first-party SnapshotPreviews solution.swift test rendering is not supported.Do only enough detection to route before calling the wizard:
# SnapshotPreviews (Sentry first-party) -> prefer wizard / SnapshotPreviews routing
find . \( -name Package.swift -o -name Package.resolved -o -path '*/project.pbxproj' \) -print0 2>/dev/null | xargs -0 grep -lE "SnapshotPreviews" 2>/dev/null
# Point-Free swift-snapshot-testing -> preserve generator, swift-snapshot-testing CI path
find . \( -name Package.swift -o -name Package.resolved -o -path '*/project.pbxproj' \) -print0 2>/dev/null | xargs -0 grep -lE "swift-snapshot-testing|SnapshotTesting|assertSnapshot|__Snapshots__|TEST_RUNNER_SNAPSHOT_TESTING_RECORD" 2>/dev/null
# Required wizard input
find . -name '*.xcodeproj' -print 2>/dev/null | head -20
# Workflow shape
ls fastlane/Fastfile Gemfile 2>/dev/null
# Sentry auth presence only -> never print secret values
[ -n "$SENTRY_AUTH_TOKEN" ] && echo "SENTRY_AUTH_TOKEN=set" || echo "SENTRY_AUTH_TOKEN=unset"
[ -n "$SENTRY_ORG" ] && echo "SENTRY_ORG=set" || echo "SENTRY_ORG=unset"
[ -n "$SENTRY_PROJECT" ] && echo "SENTRY_PROJECT=set" || echo "SENTRY_PROJECT=unset"
Record: existing SnapshotPreviews setup, existing snapshot generator/library, output directory if known, Xcode project directory, CI provider, Fastlane, and Sentry auth. For each .xcodeproj match, record the containing directory for --xcode-project-dir; if find prints ./MyApp/MyApp.xcodeproj, pass ./MyApp, not the bundle path. Let the wizard detect app targets, hosted XCTest targets, and Swift previews only when no existing generator is present.
Resolve routing in this order; setup is the primary path and CI is optional follow-up.
.xcodeproj host app or no hosted XCTest target. These stops do not apply when preserving another generator.references/snapshots.md;references/snapshot-previews.md and references/snapshots.md;references/wizard-setup.md;swift-snapshot-testing -> read references/github-actions-swift-snapshot-testing.md and references/snapshots.md;references/snapshots.md and adapt existing CI/upload;references/github-actions-simple.md;references/github-actions-fanout.md and references/snapshot-previews.md.| Need | Read |
|---|---|
| First-party SnapshotPreviews setup, disambiguation, or manual fallback | references/wizard-setup.md |
| SnapshotPreviews metadata, rendering preferences, selective rendering, or SnapshotPreviews-specific troubleshooting | references/snapshot-previews.md |
| Upload any generated snapshot images to Sentry with Fastlane, sentry-cli, manifests, CI notes, or upload troubleshooting | references/snapshots.md |
| One-destination GitHub Actions workflow | references/github-actions-simple.md |
| Multi-destination/fan-out GitHub Actions workflow | references/github-actions-fanout.md |
| Point-Free swift-snapshot-testing GitHub Actions workflow | references/github-actions-swift-snapshot-testing.md |
.png files and any generated .json sidecars.development
Migrate JavaScript SDK to Sentry span streaming (span-first trace lifecycle). Use when asked to "enable span streaming", "migrate to span streaming", "use traceLifecycle stream", "add spanStreamingIntegration", or switch from transaction-based to streamed span delivery in a JavaScript project.
development
Migrate Python SDK to Sentry span streaming (span-first trace lifecycle). Use when asked to "enable span streaming", "migrate to span streaming", "use trace_lifecycle stream", or switch from transaction-based to streamed span delivery in a Python project.
development
Keep Sentry SDKs up to date. Use when asked to upgrade the Sentry SDK across major versions, migrate SDK versions, or fix deprecated APIs.
testing
Full Sentry Snapshots setup for Apple/Cocoa projects. Use when asked to "setup SnapshotPreviews", "setup Apple snapshot testing", "upload Apple snapshots to Sentry", "setup Apple snapshot GitHub Actions", or "setup Apple selective snapshot testing".