Readable crashes, counted once.
Fatal crashes are written to disk at crash time and delivered on the next launch — duplicate-safe, so a retry can never double-count. Symbolicated end-to-end on device builds, grouped into issues. Upload dSYMs late and existing issues re-group with real function names.
Pharen.shared?.crashes.recordError(
"Checkout failed: gateway timeout",
breadcrumbs: ["tapped_pay", "network_slow"]
)