Reference for App Store Connect crash analysis, TestFlight feedback, metrics dashboards, and data export workflows
Provides App Store Connect crash analysis, TestFlight feedback review, and performance metrics guidance.
npx claudepluginhub charleswiltgen/axiomThis skill inherits all available tools. When active, it can use any tool Claude has access to.
App Store Connect (ASC) provides crash reports, TestFlight feedback, and performance metrics for your apps. This reference covers how to navigate ASC to find and export crash data for analysis.
| Task | Best Tool |
|---|---|
| Quick crash triage during development | Xcode Organizer |
| Team-wide crash visibility | App Store Connect |
| TestFlight feedback with screenshots | App Store Connect |
| Historical metrics and trends | App Store Connect |
| Downloading crash logs for analysis | Either (ASC has better export) |
| Symbolication | Xcode Organizer |
App Store Connect
└── My Apps
└── [Your App]
└── Analytics
└── Crashes
Direct URL pattern: https://appstoreconnect.apple.com/analytics/app/[APP_ID]/crashes
| Metric | What It Means |
|---|---|
| Crash-Free Users | Percentage of daily active users who didn't experience a crash |
| Crash Count | Total number of crash reports received |
| Crash Rate | Crashes per 1,000 sessions |
| Affected Devices | Number of unique devices that crashed |
| Crash Signature | Grouped crashes with same stack trace |
| Filter | Use Case |
|---|---|
| Platform | iOS, iPadOS, macOS, watchOS, tvOS |
| Version | Drill into specific app versions |
| Date Range | Last 7/30/90 days or custom range |
| Compare | Compare crash rates between versions |
| Device | Filter by iPhone model, iPad, etc. |
| OS Version | Find OS-specific crashes |
Each crash signature shows:
crash-analyzer agent to parse: /axiom:analyze-crashApp Store Connect
└── My Apps
└── [Your App]
└── TestFlight
└── Feedback
Each feedback submission includes:
| Field | Description |
|---|---|
| Screenshot | What the tester saw (often most valuable) |
| Comment | Tester's description of the issue |
| App Version | Exact TestFlight build number |
| Device Model | iPhone 15 Pro Max, iPad Air, etc. |
| OS Version | iOS 17.2.1, etc. |
| Battery Level | Low battery can affect behavior |
| Available Disk | Low disk can cause write failures |
| Network Type | WiFi vs Cellular |
| Locale | Language and region settings |
| Timestamp | When submitted |
| Filter | Use Case |
|---|---|
| Build | Focus on specific TestFlight builds |
| Date | Recent feedback first |
| Has Screenshot | Find visual issues quickly |
TestFlight feedback is one-way. You cannot respond to testers through ASC. For follow-up:
App Store Connect
└── My Apps
└── [Your App]
└── Analytics
└── Metrics
| Category | What It Shows |
|---|---|
| Crashes | Crash-free users, crash count, top signatures |
| Hang Rate | Main thread hangs > 250ms |
| Disk Writes | Excessive disk I/O patterns |
| Launch Time | App startup performance |
| Memory | Peak memory usage, terminations |
| Battery | Energy usage during foreground/background |
| Scrolling | Scroll hitch rate |
The Metrics dashboard shows terminations that don't produce crash reports:
| Termination Type | Cause |
|---|---|
| Memory Limit | Jetsam killed app for memory pressure |
| CPU Limit (Background) | Exceeded background CPU quota |
| Launch Timeout | App took too long to launch |
| Background Task Timeout | Background task exceeded time limit |
Use the Compare filter to see:
For automated export, use the App Store Connect API:
# Get crash diagnostic insights
GET /v1/apps/{id}/perfPowerMetrics
# Authentication requires API key from ASC
# Users and Access → Keys → App Store Connect API
API capabilities:
| Endpoint | Data |
|---|---|
perfPowerMetrics | Performance and power metrics |
diagnosticSignatures | Crash signature aggregates |
diagnosticLogs | Individual crash logs |
betaTesters | TestFlight tester info |
betaFeedback | TestFlight feedback entries |
If asc-mcp is configured, you can access ASC data programmatically from Claude Code:
| Manual ASC Action | asc-mcp Tool |
|---|---|
| View crash metrics | metrics_app_perf, metrics_build_diagnostics |
| Download crash logs | metrics_get_diagnostic_logs |
| List TestFlight testers | builds_get_beta_testers |
| View app reviews | reviews_list, reviews_stats |
| Respond to reviews | reviews_create_response |
| Check build status | builds_get_processing_state |
| Export sales data | analytics_sales_report (requires vendor_number) |
Setup and workflows: /skill axiom-asc-mcp
If using Xcode Cloud, crash data integrates with CI/CD:
| Priority | Criteria |
|---|---|
| P0 - Critical | >1% of users affected, data loss risk |
| P1 - High | >0.5% affected, user-facing impact |
| P2 - Medium | <0.5% affected, workaround exists |
| P3 - Low | Rare, edge case, no impact |
After each release:
| Cause | Fix |
|---|---|
| Too recent | Wait 24 hours for processing |
| No users yet | Need active installs to report |
| User opted out | Requires device analytics sharing |
| Build not distributed | Must be TestFlight or App Store |
ASC crashes should auto-symbolicate if you uploaded dSYMs during distribution. dSYM files contain the debug symbols that map memory addresses back to function names and line numbers.
Verify dSYMs were uploaded:
.xcarchive → "Show Package Contents"dSYMs/ folder contains .dSYM bundlesManual symbolication workflow:
# 1. Download .ips file from ASC (Crashes → signature → Download Logs)
# 2. Find the binary UUID from the crash report
grep --after-context=2 "Binary Images" crash.ips
# Look for: 0x100000000 - 0x100ffffff MyApp arm64 <UUID>
# 3. Locate matching dSYM on your machine
mdfind "com_apple_xcode_dsym_uuids == <UUID>"
# 4. Symbolicate an address
atos -arch arm64 -o MyApp.app.dSYM/Contents/Resources/DWARF/MyApp \
-l 0x100000000 0x100045abc
# Output: -[UserManager currentUser] (UserManager.m:42)
Common symbolication failures:
| Symptom | Cause | Fix |
|---|---|---|
| All addresses unsymbolicated | dSYMs not uploaded | Re-upload from Xcode Organizer |
| Only your code unsymbolicated | dSYM UUID mismatch | Rebuild from same commit |
| System frameworks unsymbolicated | Normal for device-specific | Use atos with device support files |
| Bitcode builds unsymbolicated | Apple recompiled binary | Download dSYMs from ASC: Xcode → Organizer → Download Debug Symbols |
See crash-analyzer agent for automated parsing: /axiom:analyze-crash
Both show the same data, but:
For device-level crash diagnostics, hang call stacks, and custom telemetry beyond ASC's aggregated dashboards, see axiom-metrickit-ref.
Key difference: ASC shows aggregated trends for team visibility. MetricKit provides per-device diagnostics you can correlate with your own telemetry.
Skills: axiom-testflight-triage (Xcode Organizer workflows), axiom-asc-mcp (programmatic ASC access via MCP)
Agents: crash-analyzer (automated crash log parsing)
Commands: /axiom:analyze-crash
WWDC: 2020-10076, 2020-10078, 2021-10203, 2021-10258
Docs: /app-store-connect/api, /xcode/diagnosing-issues-using-crash-reports-and-device-logs
Activates when the user asks about AI prompts, needs prompt templates, wants to search for prompts, or mentions prompts.chat. Use for discovering, retrieving, and improving prompts.
Search, retrieve, and install Agent Skills from the prompts.chat registry using MCP tools. Use when the user asks to find skills, browse skill catalogs, install a skill for Claude, or extend Claude's capabilities with reusable AI agent components.
Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.