iOS Launch Crash Fixes

Reference for the three iOS release-build launch crashes fixed in builds 32 through 35 and the patches that must be preserved.

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).

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.