Use when ANY beta tester reports a crash, ANY crash appears in Organizer or App Store Connect, crash logs need symbolication, app was killed without crash report, or you need to triage TestFlight feedback
View on GitHubSelect agents to install to:
npx add-skill https://github.com/CharlesWiltgen/Axiom/blob/main/.claude-plugin/plugins/axiom/skills/axiom-testflight-triage/SKILL.md -a claude-code --skill axiom-testflight-triageInstallation paths:
.claude/skills/axiom-testflight-triage/# TestFlight Crash & Feedback Triage
## Overview
Systematic workflow for investigating TestFlight crashes and reviewing beta feedback using Xcode Organizer. **Core principle:** Understand the crash before writing any fix — 15 minutes of triage prevents hours of debugging.
## Red Flags — Use This Skill When
- "A beta tester said my app crashed"
- "I see crashes in App Store Connect metrics but don't know how to investigate"
- "Crash logs in Organizer aren't symbolicated"
- "User sent a screenshot of a crash but I can't reproduce it"
- "App was killed but there's no crash — just disappeared"
- "TestFlight feedback has screenshots I need to review"
---
## Decision Tree — Start Here
### "A user reported a crash"
1. **Open Xcode Organizer** (Window → Organizer → Crashes tab)
2. **Select your app** from the left sidebar
3. **Find the build version** the user was running
4. **Is the crash symbolicated?**
- YES (you see function names) → Go to [Reading the Crash Report](#reading-the-crash-report)
- NO (you see hex addresses like `0x100abc123`) → Go to [Symbolication Workflow](#symbolication-workflow)
5. **Can you identify the crash location?**
- YES → Go to [Common Crash Patterns](#common-crash-patterns)
- NO → Go to [Claude-Assisted Interpretation](#claude-assisted-interpretation)
### "App was killed but no crash report"
Not all terminations produce crash reports. Check for:
1. **Jetsam reports** — System killed app due to memory pressure
- Organizer shows these separately from crashes
- Look for high `pageOuts` value
2. **Watchdog termination** — Main thread blocked too long
- Exception code `0x8badf00d` ("ate bad food")
- Happens during launch (>20s) or background tasks (>10s)
3. **MetricKit diagnostics** — On-device termination reasons
- Requires MetricKit integration in your app
→ See [Terminations Without Crash Reports](#terminations-without-crash-reports)
### "I want to review TestFlight feedback"
1. **Xcode Organizer** → Feed