Firebase Crashlytics — mi ez, összeomlások és hibadiagnosztika

Szerző: IT Sectr Megjelenés: 2026-04-27 Olvasási idő: 10 perc

A Firebase Crashlytics egy Google-szolgáltatás a mobilalkalmazások hibáinak valós idejű gyűjtésére, csoportosítására és elemzésére. Az SDK automatikusan elfogja a kezeletlen kivételeket, a natív kód összeomlásait és az ANR-jeleket, részletes jelentést készítve veremkövetéssel, eszköz állapottal és naplókkal. A Google, 2026 adatai szerint a Crashlytics-t több mint 4 millió alkalmazás használja világszerte. A szolgáltatás ingyenes, napi 500 ezer munkamenet korláttal projektenként.

Főbb pontok

  • Firebase Crashlytics — automatikus összeomlásgyűjtő ingyenes tarifával napi 500 ezer munkamenetig.
  • Az SDK kivételeket fog el Kotlin, Java, Swift, Objective-C, natív C/C++ és ANR Androidon.
  • Minden jelentés tartalmaz veremkövetést, alkalmazásverziót, eszközmodellt és felhasználói naplókat.
  • A Crashlytics csoportosítja az azonos összeomlásokat verem és gyakoriság szerint, megjelenítve az érintett felhasználók számát.
  • A szolgáltatás integrálva van az Analytics-szal — ugyanabban a felületben láthatja a felhasználó hibáig vezető útját.

Mi az a Firebase Crashlytics

Firebase Crashlytics egy ingyenes Google-szolgáltatás a mobilalkalmazások stabilitásának figyelésére, amelyet a Google 2017-ben vásárolt meg a Fabric vállalattal együtt. A Crashlytics automatikusan gyűjti az információkat minden alkalmazáshibáról, csoportosítja az azonos összeomlásokat a verem aláírása alapján, és megjeleníti azokat a Firebase-konzolban az érintett felhasználók száma szerinti rangsorolással.

Történelem és fejlődés

A Crashlytics 2011-ben indult a Fabric platform részeként, és gyorsan a de facto szabvánnyá vált az összeomlásjelentésben iOS-en. Miután a Google 2017-ben becslések szerint 2 milliárd dollárért (az egész Fabric) megvásárolta, a Crashlytics integrálásra került a Firebase SDK-ba. A 18.0.0 verzió (2021) hozzáadta a Kotlin Multiplatform támogatást, a 19.0.0 verzió (2024) pedig az automatikus ANR-gyűjtést Androidon további konfiguráció nélkül. A Google (2026) adatai szerint a Crashlytics havonta több mint 10 milliárd összeomlást dolgoz fel.

A Crashlytics ingyenes korlátai

Crashlytics ingyenesen elérhető napi 500 ezer munkamenet korláttal Firebase-projektenként. A legtöbb alkalmazás számára ez elegendő — a Google (2026) adatai szerint a projektek 95%-a nem lépi túl a korlátot. Túllépés esetén az adatgyűjtés nem áll le, de a jelentések nem frissülnek a következő napig. A nagy terhelésű projektek számára elérhetők a Firebase Spark és Blaze díjcsomagjai — a Crashlytics mindkét díjcsomagban ingyenes marad, és a munkamenet-korlátot külön számítja.

Hogyan észleli és gyűjti a Crashlytics a hibákat

A gyűjtési mechanizmus a Crashlytics-ben a kivételek platform- és futásidő szintű elfogásán alapul. Androidon az SDK egy UncaughtExceptionHandler-t implementál, amely elfogja az összes kezeletlen Kotlin és Java kivételt. iOS-en a Crashlytics az NSSetUncaughtExceptionHandler-t használja Objective-C/Swift számára és saját Mach-kivételkezelőt a natív kód összeomlásaihoz.

Az elfogott hibák típusai

A Crashlytics öt típust különböztet meg: fatal (végzetes összeomlások), non-fatal (nem végzetes, manuálisan továbbított kivételek), ANR (Android — az alkalmazás nem válaszol), signal (OS-jelek — SIGSEGV, SIGABRT) és OOM (memóriahiány iOS-en). Minden típust külön mechanizmus dolgoz fel, és a konzolban a megfelelő címkével jelenik meg.

Hiba típusaPlatformokTrigger
FatalAndroid, iOSKezeletlen kivétel
Non-fatalAndroid, iOSCrashlytics.logException() manuális hívása
ANRAndroidNincs válasz > 5 másodperc
SignalAndroid, iOSOS-jel (SEGV, ABRT, BUS)
OOMiOSMemóriahiány

A hibajelentés formátuma

Minden Crashlytics-jelentés átfogó információkat tartalmaz: teljes veremkövetés osztálynevekkel és sorszámokkal, alkalmazásverzió (versionName + versionCode), eszközmodell, OS-verzió, szabad memória mennyisége, képernyő tájolása és indulás óta eltelt idő. Ha a Firebase Analytics csatlakoztatva van, a jelentés tartalmazza a felhasználó utolsó 50 eseményének útját is a hiba előtt — ez kritikus fontosságú az összeomlás reprodukálásához.

kotlin
class CrashlyticsHelper {
    fun logNonFatal(error: Throwable) {
        FirebaseCrashlytics.getInstance()
            .log("Non-fatal: user action = payment_failed")
        FirebaseCrashlytics.getInstance()
            .recordException(error)
    }

    fun setUserContext(userId: String) {
        FirebaseCrashlytics.getInstance()
            .setUserId(userId)
        FirebaseCrashlytics.getInstance()
            .setCustomKey("subscription", "premium")
    }
}

A Crashlytics integrálása Android-projektbe

A Crashlytics csatlakoztatása egy Android-alkalmazáshoz két függőség hozzáadását igényli a build.gradle-ben és a Google Services beépülő modul konfigurálását. Az SDK automatikusan aktiválja az összeomlásjelentést a Firebase inicializálásakor, további kód nélkül. A megfelelő működéshez a google-services beépülő modul és a google-services.json fájl a Firebase-konzolból szintén szükséges.

groovy
// build.gradle (project-level)
plugins {
    id "com.google.gms.google-services" version "4.4.0"
}

// build.gradle (app-level)
plugins {
    id "com.google.firebase.crashlytics"
}

dependencies {
    implementation(platform("com.google.firebase:firebase-bom:33.1.0"))
    implementation("com.google.firebase:firebase-crashlytics-ktx")
    implementation("com.google.firebase:firebase-analytics-ktx")
}

A Crashlytics beépülő modul konfigurálása

A com.google.firebase.crashlytics beépülő modul két feladatot lát el: egyedi build-azonosítót (build ID) generál az obfuszkált vermek leképezéséhez, és automatikusan létrehozza a Crashlytics SDK erőforrásait. A beépülő modul nélkül az összeomlások "unmapped" jelöléssel lesznek ellátva — csak obfuszkált osztályneveket (a.b.c) fog látni, a forráskód megtalálásának lehetősége nélkül. A beépülő modult a gyökér build.gradle és az alkalmazásmodul build.gradle fájljához kell hozzáadni.

Az integráció ellenőrzése

A Crashlytics-integráció teszteléséhez a speciális forceCrash() metódus használatos, amely egy tesztkivételt generál. Éles build-ekben ez a metódus nem érhető el. A tesztösszeomlás futtatása után a jelentés 1-5 percen belül megjelenik a Firebase-konzolban. Ha a jelentés nem jelenik meg — ellenőrizze, hogy a google-services.json megfelel-e az alkalmazás csomagjának, és hogy az AndroidManifest-ben nincsenek-e az adatgyűjtést kikapcsoló jelzők.

Összeomlások elemzése és jelentések csoportosítása

A Crashlytics-konzol két nézeti szintet biztosít: az összes összeomlás listáját (Issues) hibatípus szerinti csoportosítással, és részletes jelentést minden Issue-ről veremkövetéssel, statisztikával és felhasználói adatokkal. Minden Issue azonos aláírású összeomlásokat egyesít — azonos kivételtípust és megfelelő veremkövetést.

Issues és csoportosítás

Az összeomlások csoportosítása — a Crashlytics kulcsfontosságú jellemzője. Ahelyett, hogy több ezer egyedi összeomlást jelenítene meg, a szolgáltatás Issues-ekbe egyesíti azokat fingerprint — a veremkövetés ellenőrzőösszege alapján. Egy Issue 1-től több millió összeomlást is tartalmazhat. Minden Issue esetében megjelenik: a végzetes esetek száma, az egyedi felhasználók száma, az alkalmazásverzió, amelyben az összeomlás megjelent, és a problémával találkozó felhasználók százaléka.

A Google (2026) adatai szerint átlagosan az Issues 20%-a okozza az alkalmazás összes végzetes összeomlásának 80%-át (Pareto-elv). A Crashlytics automatikusan rendezi az Issues-eket súlyosság szerint — minél több felhasználó érintett, annál magasabb a prioritás. Ez lehetővé teszi a fejlesztő számára, hogy először a legnagyobb problémákat javítsa.

Statisztika verziók szerint

Crashlytics az alkalmazás minden verziójának stabilitását külön követi nyomon. A crash-free users grafikon azon felhasználók százalékát mutatja, akik nem találkoztak végzetes összeomlással az egyes verziókban. Ha egy frissítésnél a százalék a küszöbérték (alapértelmezett 99%) alá esik, a Crashlytics értesítést küld e-mailben és a Firebase Console-ban. Ez lehetővé teszi a problémás verzió gyors visszavonását vagy hotfix kiadását.

Egyéni kulcsok, naplók és Breadcrumbs

Crashlytics három mechanizmust biztosít a jelentések kontextussal való gazdagítására: egyéni kulcsokat (keys) strukturált adatokhoz, naplókat (logs) szöveges nyomon követéshez és Breadcrumbs-eket az Analytics-ből a felhasználói úthoz. Mindhárom adattípus az összeomlási jelentéshez csatolódik, és annak részletes kártyáján látható.

Egyéni kulcsok

Custom Keys — kulcs-érték párok, amelyek minden összeomlással együtt kerülnek továbbításra. Maximum 64 kulcs alkalmazásonként, minden kulcs — legfeljebb 1024 karakter hosszú sztring. A kulcsok az alkalmazás állapotának jelölésére használhatók: előfizetési szint, hitelesítési állapot, utolsó képernyő, be van-e kapcsolva a VPN. Az értékek felülíródnak — egy új, azonos nevű kulcs felülírja a régit.

Eseménynaplózás

Custom Logs — szöveges üzenetek, amelyeket a Crashlytics egy 64 KB méretű körpufferben tárol. A naplók automatikusan a következő összeomláshoz csatolódnak. Ha nem történik összeomlás — a naplók nem kerülnek továbbításra a szerverre (nem fogyasztanak forgalmat). A naplózás a felhasználó összeomlás előtti lépéseinek rögzítésére szolgál: "payment_processing_started", "api_call_initiated", "response_received_200".

kotlin
class PaymentViewModel {
    fun processPayment(amount: Double) {
        FirebaseCrashlytics.getInstance().log("Payment started: amount=$amount")

        FirebaseCrashlytics.getInstance().setCustomKey("last_screen", "payment_screen")
        FirebaseCrashlytics.getInstance().setCustomKey("subscription_tier", "basic")

        try {
            paymentGateway.charge(amount)
        } catch (e: NetworkException) {
            FirebaseCrashlytics.getInstance().recordException(e)
        }
    }
}

Breadcrumbs az Analytics-ből

Ha a projektben a Firebase Analytics csatlakoztatva van, a Crashlytics automatikusan megkapja a Breadcrumbs — az utolsó 50 analitikai eseményt az összeomlás előtt. Minden breadcrumb tartalmazza az esemény nevét és paramétereit. Ez lehetővé teszi a hibához vezető pontos műveletsor rekonstrukcióját: a felhasználó megnyitotta a képernyőt → hozzáadta a terméket → továbblépett a fizetéshez → összeomlás történt. A Breadcrumbs az Issue kártyáján egy külön "Logs" fülön jelennek meg.

Bevált gyakorlatok a hibákkal való munkához

Crashlytics a kontextus helyes konfigurálásával és az Issues feldolgozási folyamatával a leghatékonyabb. A gyakorlat azt mutatja, hogy azok a csapatok, amelyek bevezették az összeomlásokkal való munkára vonatkozó szabályokat, 60%-kal csökkentik a kritikus hibák javítási idejét (Google, 2026 adatai).

Issues rangsorolása

Nem minden összeomlás egyformán fontos. A rangsorolás a felhasználók száma és a gyakoriság alapján segít a legkritikusabb problémákra összpontosítani. Szabály: javítsa meg a felhasználók 0.1%-ánál többet érintő Issues-eket 24 órán belül. Az egyszeri előfordulású Issues-eket (< 0.01%) el lehet halasztani a következő tervezett kiadásig. A Crashlytics automatikusan jelöli a regressziókat — azokat az Issues-eket, amelyeket kijavítottak, de újra megjelentek egy új verzióban.

Integráció CI/CD-vel

A Crashlytics API lehetővé teszi a hibajelentések CI/CD pipeline-ba történő integrálását REST API-n vagy Firebase CLI-n keresztül. Minden új kiadásnál automatikusan ellenőrizhető, hogy a crash-free users százaléka nem haladja-e meg a küszöbértéket. Ha a küszöbérték túllépésre kerül — a CI/CD blokkolja a telepítést és értesítést küld a csapatnak. A Firebase CLI támogatja a firebase crashlytics:builds:upload parancsot a ProGuard/R8 leképező fájlok feltöltéséhez — ezek nélkül a vermek olvashatatlanok lesznek.

A Google (2026) adatai szerint azok az alkalmazások, amelyek automatikus crash-free küszöbérték-ellenőrzést használnak a CI/CD-ben, 40%-kal kevesebb regressziót adnak ki élesbe. Ajánlott küszöbérték: crash-free users >= 99.5% a kritikus kiadásokhoz és >= 99.0% a szokásos kiadásokhoz.

Gyakran ismételt kérdések

Mi az ingyenes munkamenetek korlátja a Crashlytics-ben?

Crashlytics napi 500 ezer munkamenetig ingyenes Firebase-projektenként. Túllépés esetén a jelentések nem frissülnek a következő napig, de az adatgyűjtés nem áll le.

Szükséges a Firebase Analytics a Crashlytics-hez?

Crashlytics Analytics nélkül is működik, de vele a jelentések Breadcrumbs-eket — az utolsó 50 felhasználói eseményt az összeomlás előtt — tartalmaznak. Javasolt mindkét modult csatlakoztatni.

Hogyan csoportosítja a Crashlytics az azonos összeomlásokat?

Csoportosítás fingerprint — a veremkövetés ellenőrzőösszege alapján történik, beleértve a kivételtípusokat és sorszámokat. Az azonos fingerprint-tel rendelkező összeomlások egy Issue-be kerülnek.

Miért nem jelenik meg az összeomlás a konzolban?

Ellenőrizze a beállításokat: a google-services.json fájlt, a crashlytics beépülő modul meglétét a build.gradle-ben, a verzió szerinti szűrés hiányát a konzolban, és a licencszerződést elfogadó build meglétét. A hibakeresés csak release build-ekben működik.

Küldhetők nem végzetes hibák a Crashlytics-be?

Igen, használja a recordException() metódust a nem végzetes kivételekhez. Az ilyen jelentések nem szakítják meg az alkalmazás működését, de a konzolban megjelennek előfordulási számlálóval és teljes veremkövetéssel.

Összefoglalás

  • Firebase Crashlytics — ingyenes szolgáltatás összeomlások gyűjtésére és elemzésére napi 500 ezer munkamenet korláttal projektenként.
  • Az SDK minden típusú hibát elfog: végzetes kivételeket, ANR-t, OS-jeleket és OOM-t mindkét mobilplatformon.
  • Minden jelentés tartalmaz veremkövetést, eszközállapotot, alkalmazásverziót és akár 50 analitikai eseményt az összeomlás előtt.
  • Az integrációhoz a google-services és crashlytics beépülő modul szükséges a Gradle-ben a vermek helyes deobfuszkálásához.
  • Issues csoportosítják az azonos összeomlásokat verem aláírása alapján, rangsorolva az érintett felhasználók száma szerint.
  • Az egyéni kulcsok és naplók lehetővé teszik a jelentés kontextussal való gazdagítását — előfizetési állapot, utolsó képernyő, összeomlás előtti lépések.
  • Integráció CI/CD-vel a Crashlytics API-n keresztül lehetővé teszi a telepítés blokkolását, ha a crash-free százalék a küszöbérték alá esik.

Kulcsrakész mobilalkalmazást fejlesztünk

Az IT Sectr 2017 óta készít iOS és Android alkalmazásokat induló vállalkozásoknak és vállalkozásoknak. Tanácsot adunk, és a legjobb megoldást javasoljuk.

Projekt megbeszélése

Olvassa el is