How do I attribute a crash to a specific cmp-* library?¶
When FirebaseCrashlyticsAttributionHook is registered, every cmp-* library
auto-tags its own initialization, navigation, and uncaught exceptions with a
cmp_library custom key so you can filter Crashlytics issues per library
without per-call boilerplate.
Quick start (minimal MWE)¶
import org.koin.core.context.startKoin
import com.mobilebytelabs.kmptoolkit.observe.koin.observeKoinModule
import com.mobilebytelabs.kmptoolkit.observe.koin.FirebaseCrashlyticsAttributionHook
startKoin {
modules(
observeKoinModule(
hooks = listOf(FirebaseCrashlyticsAttributionHook()),
),
)
}
In the Firebase console:
Caveats / per-platform notes¶
- Tag is set on the cmp-
notifyInitthread — if a crash happens during JVM startup before any cmp- module initializes, the tag is absent. - iOS: custom keys propagate to Crashlytics within 200ms (vs Android's synchronous setCustomKey).
- The
cmp_librarykey reflects the LAST library to callnotifyIniton the current thread; for genuine multi-library crashes, inspect the breadcrumbs trail rather than the tag alone.
Related¶
- Module: cmp-observe-koin
- Library observability surface:
RULE-LIB-OBSERVABILITY-SURFACE-001 - See also: Register Firebase hooks at app startup