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>
- Regenerate all app icons (icon.png, adaptive-icon.png, splash.png,
favicon.png, notification-icon.png) using the DocuElevate folder+gear
SVG logo on brand blue (#1e40af) background
- Add assets/logo.png (200×200 circular logo) for the login screen
- Update LoginScreen.tsx to display the DocuElevate logo image above
the brand name text instead of plain text only
- Replace emoji tab bar icons (⬆️📄👤) with Ionicons vector icons
(cloud-upload-outline, document-text-outline, person-circle-outline)
from the already-installed @expo/vector-icons package
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
Update iOS bundleIdentifier and Android package from
com.christianlouis.docuelevatemobile to org.docuelevate.mobile.
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
- Add mobile/assets/ directory with all required Expo/EAS asset files:
- icon.png (1024x1024 branded app icon)
- adaptive-icon.png (1024x1024 transparent fg for Android)
- splash.png (1284x2778 branded splash screen)
- favicon.png (48x48 web favicon)
- notification-icon.png (96x96 white-on-transparent for Android)
- notification-sound.wav (0.1s silent WAV, 44100 Hz mono)
- Add mobile/.eas/workflows/create-builds.yml for automatic production
builds triggered on every push to main (per Expo EAS Workflows docs)
The Xcode image pin (macos-sequoia-15.1-xcode-16.2) was already present
in eas.json from the prior fix resolving the XCode 15.4 vs >=16.1 error.
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>