EAS builds run `npm ci` which validates integrity hashes for every package.
The react entry was updated to 19.2.4 but its integrity hash was removed,
causing the EAS iOS build to fail at the Install dependencies phase.
- Runs npm install --package-lock-only to regenerate full lockfile
(also adds react-dom@19.2.4 entry with its integrity hash)
- Patches node_modules/react entry with canonical integrity hash from
the npm registry: sha512-9nfp...
- Verified with npm ci --dry-run: 938 packages, exit 0
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
- UploadScreen.tsx: replace deprecated ImagePicker.MediaTypeOptions.Images
with new array syntax ['images'] — the old enum is not accepted by the
expo-image-picker v17 TurboModule on iOS, causing SIGABRT on Thread 2
- package.json: bump react 19.1.0 → 19.2.4 so react-dom@19.2.4 (peerOptional
of @expo/metro-runtime) no longer conflicts; update @types/react to ~19.2.0
- package-lock.json: update react entry to 19.2.4 (integrity removed, will be
regenerated by npm install on the next EAS build)
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
Expo SDK 54 switched to precompiled React Native XCFrameworks by default
for faster iOS builds. However, the precompiled frameworks do not expose
legacy bridge headers (RCTBridge, RCTViewManager, RCTSurfaceHostingProxyRootView,
RCTPackagerConnection, RCTDevSettings.isDebuggingRemotely, rootViewFactory)
that some native modules (e.g. expo-dev-client) still reference.
Add expo-build-properties (v1.0.10, the SDK 54-compatible version) and
configure buildReactNativeFromSource: true for iOS. This compiles React
Native from source, making all native headers available to linked modules
and resolving the Xcode compilation errors seen in the EAS production build.
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>