Skills

Crash Analytics

When the user wants to monitor, triage, or reduce their app's crash rate, including...

Install

npx skills add appeeky/aso-skills --skill crash-analytics -g -a claude-code -y
Repository
appeeky/aso-skills2.2k
Category
Mobile
Updated
29d ago
License
MIT
Context cost
Lightabout 1,402 tokens
Runs scripts
No, instructions only

What it does

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.

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

ToolWhat it providesSetup
Firebase CrashlyticsReal-time crashes, ANRs, symbolicated stack tracesAdd FirebaseCrashlytics pod/SPM package
App Store ConnectCrash rate trend, crashes per sessionBuilt-in, no code needed
Xcode OrganizerAggregated crash logs from TestFlight + App StoreXcode → Window → Organizer → Crashes
MetricKitOn-device diagnostics, hang rate, launch timeiOS 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)
Read the whole SKILL.md on GitHub

More in Mobile