axiom-app-store-connect-ref
npx skills add https://github.com/charleswiltgen/axiom --skill axiom-app-store-connect-ref
Agent 安装分布
Skill 文档
App Store Connect Reference
Overview
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.
When to use ASC vs Xcode Organizer:
| 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 |
Navigating to Crash Data
Path to Crashes
App Store Connect
âââ My Apps
âââ [Your App]
âââ Analytics
âââ Crashes
Direct URL pattern: https://appstoreconnect.apple.com/analytics/app/[APP_ID]/crashes
Crashes Dashboard Layout
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â [Filters: Platform â¼] [Version â¼] [Date Range â¼] [Compare â¼] â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ¤
â â
â Crash-Free Users Graph â
â âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ â
â â 99.5% âââââââââââââââââââââââââââââââââââââââââââââââââââââ â â
â â 99.0% âââââââââââââââââââââââââââââââââââââââââââââââââââââ â â
â â 98.5% âââââââââââââââââââââââââââââââââââââââââââââââââââââ â â
â âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ â
â â
â Crash Count by Version â
â âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ â
â â v2.1.0 ââââââââââââ 1,234 crashes â â
â â v2.0.5 ââââââââ 892 crashes â â
â â v2.0.4 âââ 156 crashes â â
â âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ â
â â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ¤
â Top Crash Signatures â
â âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ â
â â 1. EXC_BAD_ACCESS in UserManager.currentUser.getter 45% share â â
â â 2. EXC_CRASH in NetworkService.fetchData() 23% share â â
â â 3. EXC_BREAKPOINT in Array subscript 12% share â â
â âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
Key Metrics Explained
| 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 |
Filtering Options
| 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 |
Viewing Individual Crash Reports
Crash Signature Detail View
Click a crash signature to see:
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â EXC_BAD_ACCESS in UserManager.currentUser.getter â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ¤
â Affected: 234 devices ⢠45% of crashes ⢠First seen: Jan 10 â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ¤
â â
â Exception Information â
â âââââââââââââââââââ â
â Type: EXC_BAD_ACCESS (SIGSEGV) â
â Codes: KERN_INVALID_ADDRESS at 0x0000000000000010 â
â â
â Crashed Thread (0) â
â âââââââââââââââââ â
â 0 MyApp UserManager.currentUser.getter + 45 â
â 1 MyApp ProfileViewController.viewDidLoad() + 123 â
â 2 UIKitCore -[UIViewController loadView] + 89 â
â 3 UIKitCore -[UIViewController view] + 27 â
â â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ¤
â Distribution â
â âââââââââââââââ â
â iOS 17.2: ââââââââ 65% â
â iOS 17.1: ââââ 25% â
â iOS 16.4: ââ 10% â
â â
â iPhone 15 Pro: ââââââââ 45% â
â iPhone 14: ââââ 30% â
â iPhone 13: ââ 15% â
â Other: â 10% â
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
Downloading Crash Logs
- Click on a crash signature
- Look for Download Logs button (top right)
- Select format:
- .ips (JSON format, iOS 15+)
- .crash (text format, legacy)
- Use
crash-analyzeragent to parse:/axiom:analyze-crash
TestFlight Feedback
Path to Feedback
App Store Connect
âââ My Apps
âââ [Your App]
âââ TestFlight
âââ Feedback
Feedback Entry Contents
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 |
Feedback Filtering
| Filter | Use Case |
|---|---|
| Build | Focus on specific TestFlight builds |
| Date | Recent feedback first |
| Has Screenshot | Find visual issues quickly |
Limitation: No Reply
TestFlight feedback is one-way. You cannot respond to testers through ASC. For follow-up:
- Contact through TestFlight group email
- Add in-app feedback mechanism
- Include your email in TestFlight notes
Metrics Dashboard
Path to Metrics
App Store Connect
âââ My Apps
âââ [Your App]
âââ Analytics
âââ Metrics
Available Metrics Categories
| 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 |
Terminations (Non-Crash Kills)
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 |
Comparing Versions
Use the Compare filter to see:
- Did crash rate improve or regress?
- Which version introduced a spike?
- Performance trends over releases
Exporting Data
Manual Export
- Navigate to Crashes or Metrics
- Use date range filter to select period
- Click Export (if available) or download individual crash logs
App Store Connect API
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 |
Xcode Cloud Integration
If using Xcode Cloud, crash data integrates with CI/CD:
- View crashes per workflow run
- Compare crash rates between branches
- Automated alerts on crash spikes
Best Practices
Daily Monitoring
- Check crash-free users percentage
- Review any new crash signatures
- Monitor for version-to-version regressions
Crash Triage Priority
| 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 |
Correlating with Releases
After each release:
- Wait 24-48 hours for crash data to populate
- Compare crash-free rate to previous version
- Investigate any new top crash signatures
- Check TestFlight feedback for user reports
Common Questions
Why don’t I see crashes in ASC?
| 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 |
Why are crashes unsymbolicated?
ASC crashes should auto-symbolicate if:
- You uploaded dSYMs during distribution
- “Upload debug symbols” was enabled
If still unsymbolicated:
- Download .ips file from ASC
- Use
mdfindto locate dSYM by UUID - Symbolicate with
atos
See crash-analyzer agent: /axiom:analyze-crash
ASC vs Organizer: Which stack trace is better?
Both show the same data, but:
- Organizer integrates with Xcode projects (click to jump to code)
- ASC better for team-wide visibility and historical trends
Related
Skills: axiom-testflight-triage (Xcode Organizer workflows)
Agents: crash-analyzer (automated crash log parsing)
Commands: /axiom:analyze-crash
Resources
WWDC: 2020-10076, 2020-10078, 2021-10203, 2021-10258
Docs: /app-store-connect/api, /xcode/diagnosing-issues-using-crash-reports-and-device-logs