Skip to content
Everframe Docs
Documentation

Configuration

Share reporting calls while each host owns its native capture and privacy boundary.

Updated

EverframeKmpConfig(appId, sdkKey) starts in production by default. Pass environment = "development" or "staging" to target those environments. The native release SDK selects the ingest endpoint.

The Kotlin/JS browser driver accepts only production; it returns a failed start for staging or development rather than sending to a production Web SDK bundle. The browser host supplies the Web SDK initializer and a masked visual provider.

Native evidence

The bridge disables automatic screenshots, while the native reporter takes a manual screenshot. Android records bounded, masked image frames; iOS uses native video replay. Replay is attached when enabled for the integration in the dashboard. The host must mark sensitive UI and verify its capture geometry. Android rejects a reporter screenshot when no sensitive markers are available unless the host explicitly allows a known-safe route.

Crash capture and network metadata are enabled. On Android, the native SDK reports Java and Kotlin crashes, and native crashes and ANRs on Android 11 and later. On iOS, the native SDK reports native crashes. Request and response bodies are disabled through this bridge. The native SDK supplies device and app context. No screen-recording permission is needed.

On web, createCanvasVisualCapture copies the host canvas, masks rectangles supplied in canvas pixel coordinates, and creates bounded image replay. The browser reporter handles delivery and retry. Capture rejects missing or invalid mask geometry unless the host explicitly allows a known-safe screen; there is no DOM screenshot fallback.

Shared Kotlin calls

CallWhat it records
recordScreen(name)A screen name chosen by the host
captureHandledError("catalog_load_failed")A handled failure with a stable, safe code
captureException(error)A caught Kotlin failure through the native handled-error path
recordNetworkOperation("catalog_fetch", "GET", 503, 42)A bounded network breadcrumb without URL, headers, or body
openReporter { outcome -> ... }A native report with a submitted, queued, cancelled, or failed outcome

Call these after start succeeds. The iOS driver uses the native Swift SDK’s handled-error path. Avoid placing private data in exception messages. The Android and iOS simulator probes delivered reports to a local dashboard; physical-device privacy and production delivery still need validation.

Quick capture

Quick capture is not available in KMP apps yet: sessions start with screenshots off, so captures are ignored.