Skip to content
TraceItX Docs
Documentation

Crash reporting

Native iOS does not file crash reports yet. An uncaught exception becomes a breadcrumb, and your existing crash reporter keeps working.

Updated

The iOS SDK does not file unattended crash reports today. Reports are filed by a person through the reporter, or from the companion. This is the one place the iOS SDK differs from Android and React Native, so it is worth being precise about what does happen.

What happens on an uncaught exception

At start() the SDK installs an NSUncaughtExceptionHandler. When an Objective-C exception goes uncaught it:

  1. Records an error breadcrumb — the exception reason as message, with data.name and a data.stackDigest of the top frames.
  2. Calls whatever exception handler was installed before TraceItX, so a crash reporter you already ship receives the exception exactly as it did before.

It never blocks or replaces the previous handler, and it never throws. Because the process ends immediately afterwards, that crumb lives in memory only; it is not written to the outbox and does not surface as a report of its own.

Swift runtime traps, signals (SIGSEGV, SIGABRT, SIGBUS), watchdog terminations and out-of-memory kills are not seen at all — an exception handler cannot observe them.

capture.crash

CaptureConfig.crash exists for parity with the other SDKs and defaults to true. On a native host it has no effect: it is read only by the React Native bridge, which reports uncaught JS errors through this SDK’s crash path. A native app gets the same behaviour with it true or false.

// Accepted, but changes nothing in a native app.
TraceItXConfig(appId: "txx_live_…", capture: CaptureConfig(crash: false))

What to do instead

Keep your existing crash reporter. If a crash is visible in Xcode Organizer but not in TraceItX, that is expected — TraceItX carries the reports users file, with the breadcrumb trail, console, network and replay that led up to them.

Automatic reports from uncaught errors are available on Android and React Native.