iOS Launch Crash Fixes
Categories:
iOS Launch Crash Fixes
Three distinct launch crashes were diagnosed and fixed in iOS builds 32 through 35 (PhenomApp issue #91 lineage). Each fix is a standing constraint; removing any of them reintroduces a crash that only appears in release builds on device.
1. h3-js TextDecoder patch (Hermes)
Crash: h3-js constructs new TextDecoder('utf-16le'), which Hermes does not support, crashing the app at launch (build 34).
Fix: h3-js is patched to avoid the utf-16le TextDecoder path. The patch must survive dependency updates; if h3-js is upgraded, verify the patch still applies or re-create it.
2. AppNavigator / MapScreen circular import
Crash: a circular import between AppNavigator and MapScreen produced an undefined module at launch in release bundles (build 33).
Fix: the cycle is broken with a type-only import (import type). Keep navigation type imports type-only; metro release bundling is less forgiving of cycles than the dev server.
3. Sentry native layer
Crash: the @sentry/react-native native layer crashed the app at launch in build 31.
Fix: the SDK runs JS-only (enableNative: false). See Crash Reporting with GlitchTip. All EAS iOS profiles also set SENTRY_DISABLE_AUTO_UPLOAD and SENTRY_ALLOW_FAILURE (build 35 verified the combination on device).
Related: VisionCamera optimisation level
VisionCamera must stay at -O swift optimisation under singlefile compilation. -Onone causes the blank record screen documented in Camera Recording Fix.
Debugging aids
The error screen prints error.stack plus the React component stack (added in build 30), which is how the circular-import crash was located. Keep that diagnostic in place; it costs nothing in healthy builds.
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.