
crash-analytics
When the user wants to monitor, triage, or reduce their app's crash rate — including setting up Crashlytics, prioritizing which crashes to fix first, interpreting crash data, and understanding how crashes affect App Store ranking. Use when the user mentions "crash", "crashlytics", "crash rate", "ANR", "app not responding", "crash-free sessions", "crash-free users", "symbolication", "stability", "firebase crashes", "app crashing", or "crash report". For overall analytics setup, see app-analytics.
- Installs
- 2.4K
- Last 24h
- +15
- Trending rank
- #7023
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/appeeky/aso-skills --skill crash-analytics- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads crash-analytics automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Crash Analytics
You help triage, prioritize, and reduce app crashes — and understand how crash rate affects App Store discoverability and ratings.
Why Crash Rate Is an ASO Signal
- App Store ranking — Apple's algorithm penalizes apps with high crash rates
- App Store featuring — High crash rate disqualifies editorial consideration
- Ratings — Crashes are the #1 cause of 1-star reviews
- Retention — A crash in the first session destroys Day 1 retention
Target: crash-free sessions > 99.5% | crash-free users > 99%
Tools
| Tool | What it provides | Setup |
|---|---|---|
| Firebase Crashlytics | Real-time crashes, ANRs, symbolicated stack traces | Add FirebaseCrashlytics pod/SPM package |
| App Store Connect | Crash rate trend, crashes per session | Built-in, no code needed |
| Xcode Organizer | Aggregated crash logs from TestFlight + App Store | Xcode → Window → Organizer → Crashes |
| MetricKit | On-device diagnostics, hang rate, launch time | iOS 13+, automatic |
Recommended: Crashlytics (real-time alerts + search) + App Store Connect (trend validation)
Crashlytics Setup
iOS (Swift)
// AppDelegate or @main App struct
import FirebaseCore
import FirebaseCrashlytics
@main
struct MyApp: App {
init() {
FirebaseApp.configure()
// Crashlytics is auto-initialized
}
}
Non-fatal errors (track without crashing)
// Log a non-fatal error
Crashlytics.crashlytics().record(error: error)
// Log a custom key for debugging context
Crashlytics.crashlytics().setCustomValue(userId, forKey: "user_id")
Crashlytics.crashlytics().setCustomValue(screenName, forKey: "current_screen")
Android (Kotlin)
// build.gradle (app)
implementation("com.google.firebase:firebase-crashlytics:18.x.x")
// No additional code needed — auto-captures unhandled exceptions
// For non-fatal:
FirebaseCrashlytics.getInstance().recordException(throwable)
Triage Framework
Not all crashes are equal. Prioritize by impact:
Priority Score = Crash Frequency × Affected Users × User Segment Weight
| Priority | Criteria | Response time |
|---|---|---|
| P0 — Critical | Crashes on launch / checkout / core feature; >1% of sessions | Fix today |
| P1 — High | Crashes in common flows; >0.1% of sessions | Fix this release |
| P2 — Medium | Edge case crashes; <0.1% of sessions | Fix next release |
| P3 — Low | Rare, non-blocking crashes; <0.01% of sessions | Backlog |
Crashlytics Dashboard Triage
- Sort by "Impact" (unique users affected), not frequency
- Group:
onboarding,checkout,core feature,background,launch - Assign P0/P1 to the top 3–5 issues
- Set a velocity alert in Crashlytics for any issue affecting >0.5% of users
Reading a Crash Report
Fatal Exception: com.example.NullPointerException
at com.example.UserProfileVC.loadData:87
at com.example.HomeVC.viewDidLoad:45
Keys:
user_id: 12345
current_screen: "home"
app_version: "2.3.1"
os_version: "iOS 17.3"
Steps to debug:
- Open the file and line in Xcode (
UserProfileVC.swift:87) - Check what can be nil at that point
- Reproduce with the user context (OS version, device, screen)
- Write a failing test before fixing
Symbolication
Crashlytics auto-symbolicates if you upload dSYMs. If you see unsymbolicated traces:
# Manually upload dSYMs
./Pods/FirebaseCrashlytics/upload-symbols -gsp GoogleService-Info.plist -p ios MyApp.app.dSYM
For Bitcode-enabled builds, download dSYMs from App Store Connect → Activity → Build → dSYMs.
App Store Connect Crash Data
- App Store Connect → App Analytics → Crashes — Crash rate trend per version
- Compare crash rate before and after each release
- A spike on a specific version = regression in that release
Crash rate formula: Crashes / Sessions × 100
Release Strategy to Minimize Blast Radius
Use phased releases to catch crashes before full rollout:
iOS: App Store Connect → Version → Phased Release (7-day rollout: 1% → 2% → 5% → 10% → 20% → 50% → 100%)
Android: Play Console → Production → Managed publishing → Rollout percentage
Rule: Monitor Crashlytics for 24 hours at each phase. If crash rate increases >0.2%, pause rollout.
Responding to Crash-Driven 1-Star Reviews
- Identify the app version where crash-related 1-stars appeared
- Fix the crash
- Reply to each crash-related review: "Fixed in version X.X — please update"
- After update ships, use
rating-prompt-strategyto recover rating
Output Format
Crash Audit Report
Stability Report — [App Name] v[version] ([period])
Crash-free sessions: [X]% (target: >99.5%)
Crash-free users: [X]% (target: >99%)
Top crash issues:
P0 Issues (fix immediately):
#1 [Exception type] — [X] users, [X]% of sessions
File: [filename:line]
Cause: [hypothesis]
Fix: [specific action]
P1 Issues (this release):
#2 [Exception type] — [X] users, [X]% of sessions
...
Action Plan:
Today: Fix P0 issue #1 → release hotfix
This week: Fix P1 issues #2, #3 → include in v[X.X]
Monitoring: Set velocity alert at 0.5% session threshold
Related Skills
app-analytics— Full analytics stack; Crashlytics is one piecerating-prompt-strategy— Recover rating after fixing crash-driven 1-starsreview-management— Respond to crash-related reviewsretention-optimization— Crashes on Day 1 destroy retention metricsapp-store-featured— Crash rate > 2% disqualifies editorial featuring
FAQ
What does the crash-analytics skill do?
When the user wants to monitor, triage, or reduce their app's crash rate — including setting up Crashlytics, prioritizing which crashes to fix first, interpreting crash data, and understanding how crashes affect App Store ranking. Use when the user mentions "crash", "crashlytics", "crash rate", "ANR", "app not responding", "crash-free sessions", "crash-free users", "symbolication", "stability", "firebase crashes", "app crashing", or "crash report". For overall analytics setup, see app-analytics.
How do I install crash-analytics?
Run npx skills add https://github.com/appeeky/aso-skills --skill crash-analytics in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/crash-analytics/ (personal) or .claude/skills/crash-analytics/ (project).
Which AI agents can use crash-analytics?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is crash-analytics safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains crash-analytics?
It is published by appeeky in appeeky/aso-skills. It has 2,428 recorded installs.
More from appeeky/aso-skills
aso-audit
appeeky/aso-skills
When the user wants a full ASO health audit, review their App Store listing quality, or diagnose why their app isn't ranking. Also use when the user mentions "ASO audit", "ASO score", "why am I not ranking", "listing review", or "optimize my app store page". For keyword-specific research, see keyword-research. For metadata writing, see metadata-optimization.
keyword-research
appeeky/aso-skills
When the user wants to discover, evaluate, or prioritize App Store keywords. Also use when the user mentions "keyword research", "find keywords", "search volume", "keyword difficulty", "keyword ideas", or "what keywords should I target". For implementing keywords into metadata, see metadata-optimization. For auditing current keyword performance, see aso-audit.
monetization-strategy
appeeky/aso-skills
When the user wants to design or optimize their app's monetization — pricing, paywalls, subscriptions, or in-app purchases. Also use when the user mentions "pricing", "paywall", "subscription", "IAP", "how to monetize", "revenue optimization", "free trial", or "conversion to paid". For retention impact, see retention-optimization. For competitive pricing, see competitor-analysis.
metadata-optimization
appeeky/aso-skills
When the user wants to optimize App Store metadata — title, subtitle, keyword field, or description. Also use when the user mentions "optimize my title", "ASO metadata", "keyword field", "character limits", "app description", or "write my subtitle". For keyword discovery, see keyword-research. For full ASO audits, see aso-audit.
competitor-analysis
appeeky/aso-skills
When the user wants to analyze competitors' App Store strategy, find keyword gaps, or understand competitive positioning. Also use when the user mentions "competitor analysis", "competitive research", "keyword gap", "what are my competitors doing", or "compare my app to". For keyword-specific research, see keyword-research. For metadata writing, see metadata-optimization.
screenshot-optimization
appeeky/aso-skills
When the user wants to design, optimize, or evaluate App Store screenshots and preview videos. Also use when the user mentions "screenshots", "app preview", "product page design", "screenshot design", "creative assets", or "what should my screenshots show". For A/B testing screenshots, see ab-test-store-listing. For full ASO audit, see aso-audit.
Popular data & databases skills
supabase-postgres-best-practices
supabase/agent-skills
Postgres best practices maintained by Supabase, for Postgres running anywhere. Load this skill BEFORE writing or changing anything that lives in a Postgres database: creating or altering tables and columns (including choosing column types), schema design, migrations and declarative schema files, RLS policies and the tests that verify them, indexes, triggers, database functions, queues and scheduled jobs (pgcron, pgmq), vector/semantic search (pgvector), and restoring dumps (pgrestore) or importing data. Also load it when diagnosing slow queries, high CPU, timeouts, EXPLAIN plans, connection exhaustion, locking, bloat, or rows visible to the wrong user or tenant. This is not just a performance guide — schema, migration, security, and SQL authoring tasks need these rules too, even for a one-column change or a single query.
prisma-client-api
prisma/skills
Prisma Client API reference covering model queries, filters, operators, and client methods. Use when writing database queries, using CRUD operations, filtering data, or configuring Prisma Client. Triggers on "prisma query", "findMany", "create", "update", "delete", "$transaction".
prisma-database-setup
prisma/skills
Deprecated compatibility name for prisma-orm-setup. Use only when a user or existing integration explicitly invokes prisma-database-setup; otherwise select prisma-orm-setup.
prisma-cli
prisma/skills
Prisma ORM 7 CLI reference for existing Prisma 7 applications or explicitly selected Prisma 7 workflows. Covers prisma init, generate, migrate, db, dev, studio, and mcp. For setup, connection repair, or Prisma 8, use prisma-orm-setup; not the Prisma Platform CLI.
prisma-postgres
prisma/skills
Deprecated compatibility name for prisma-postgres-setup. Use only when a user or existing integration explicitly invokes prisma-postgres; otherwise select prisma-postgres-setup.
prisma-driver-adapter-implementation
prisma/skills
Required reference for Prisma ORM 7 SQL driver adapter work. Use when implementing or modifying adapters, adding database drivers, or touching SqlDriverAdapter, Transaction, savepoint, result mapping, or DriverAdapterError behavior. Covers current transaction lifecycle, optional savepoint hooks, original database-error preservation, and verification.