Problem: I have a React Native app that builds successfully in my Azure DevOps pipeline (macOS-15, Xcode 16.4, Node 23.7.0, React Native), but the app crashes immediately upon launch on both Debug and Release configurations. The build completes without errors, the IPA is generated correctly, but the app won't run.
Build Environment:
CI/CD: Azure DevOps Pipeline
macOS: macOS-15
Xcode: 16.4
Node.js: 23.7.0
NPM: 11.5.2
Yarn: 1.22.22
Build Configuration: Both Debug and Release crash
What Works:
✅ Pipeline completes successfully
✅ Archive builds without errors (** ARCHIVE SUCCEEDED **)
✅ Export succeeds (** EXPORT SUCCEEDED **)
✅ IPA file is generated
✅ CocoaPods installation succeeds
✅ JavaScript bundle is created
What Fails:
❌ App crashes immediately on launch (white screen/instant crash)
❌ Happens in both Debug and Release builds
What I've Tried:
✅ Clearing CocoaPods caches
✅ Removing and reinstalling pods
✅ Verifying JavaScript bundle is created and copied correctly
✅ Checking provisioning profiles and certificates (all valid)
✅ Using NODE_OPTIONS='--openssl-legacy-provider'
Problem: I have a React Native app that builds successfully in my Azure DevOps pipeline (macOS-15, Xcode 16.4, Node 23.7.0), but the app crashes immediately upon launch on both Debug and Release configurations. The build completes without errors and the IPA is generated correctly, but the app crashes with a fatal JavaScript exception. Crash Information:
Exception Type: EXC_CRASH (SIGABRT)
Termination Reason: SIGNAL 6 Abort trap: 6
Last Exception Backtrace:
0 CoreFoundation __exceptionPreprocess
1 libobjc.A.dylib objc_exception_throw
2 iQ.Suite Clerk RCTFatal
3 iQ.Suite Clerk -[RCTExceptionsManager
reportFatal:stack:exceptionId:extraDataAsJSON:]
4 iQ.Suite Clerk -[RCTExceptionsManager reportException:]
The crash occurs in RCTExceptionsManager, indicating a fatal JavaScript error is being thrown immediately on app launch. Build Environment: CI/CD: Azure DevOps Pipeline
macOS: macOS-15
Xcode: 16.4
Node.js: 23.7.0
NPM: 11.5.2
Yarn: 1.22.22
iOS Version: 18.5
Hermes: Enabled (visible in crash log)
Build Configuration: Both Debug and Release crash
What Works:
✅ Pipeline completes successfully
✅ Archive builds without errors (** ARCHIVE SUCCEEDED **)
✅ Export succeeds (** EXPORT SUCCEEDED **)
✅ IPA file is generated and deploys to TestFlight
✅ CocoaPods installation succeeds
✅ JavaScript bundle is created and verified
What Fails:
❌ App crashes immediately on launch (instant crash)
❌ Happens in both Debug and Release builds
❌ Fatal exception occurs before app UI appears
❌ Crash originates from JavaScript layer (RCTExceptionsManager)
Key Build Steps:
JavaScript bundle creation:
bash
react-native bundle \
--entry-file index.js \
--platform ios \
--dev false \
--minify true \
--bundle-output ios/main.jsbundle \
--assets-dest ios
Bundle is copied to two locations and verified: ios/main.jsbundle ios/Clerk_React/main.jsbundle CocoaPods installation with cache clearing Xcode build with manual code signing (Release configuration) Archive and export to IPA for App Store distribution Environment Variables: NODE_OPTIONS='--openssl-legacy-provider' (for legacy OpenSSL support)
What I've Tried:
✅ Clearing CocoaPods caches completely
✅ Removing and reinstalling pods with --repo-update
✅ Verifying JavaScript bundle exists and has content (verified with head -c 100)
✅ Checking provisioning profiles and certificates (all valid)
✅ Building with both Debug and Release configurations
✅ Using Xcode 16.4 with proper SDK (iphoneos18.5)
Questions:
Could this be related to the JavaScript bundle not being found at runtime despite being verified during build?
Do I need to configure the bundle location in Info.plist?
Is there a way to get the actual JavaScript error message that's being reported to RCTExceptionsManager?
The crash log doesn't show the JS stack trace.
Could Hermes bytecode compilation be failing silently?
Should I disable Hermes or configure it differently for CI builds?
Are there known issues with:
React Native + Xcode 16.4 + Node 23.7.0?
Hermes + iOS 18.5?
NODE_OPTIONS='--openssl-legacy-provider' affecting runtime bundle loading?
Any help would be greatly appreciated! Has anyone encountered RCTExceptionsManager reportFatal crashes immediately on launch in CI-built apps?