Short answer
Expo calls this a runtime error: the build succeeded, but the app crashes or hangs when it runs. Start with the crash report, in the Google Play Console’s crashes section or Xcode’s Crashes Organizer for TestFlight and App Store builds. Then capture native logs from a device that crashes, and run the app locally in production mode with npx expo start --no-dev --minify. We also check that the environment variables the app reads are set for the build, then narrow it down change by change.
Find the crash, then the cause
01
Read the crash report first
“For iOS apps on TestFlight or the App Store, use the Crashes Organizer in Xcode.” Expo, Debugging runtime issues
For an Android app on Google Play, open the crashes section of the Play Console. For an iOS app on TestFlight or the App Store, open the Crashes Organizer in Xcode. Also check Sentry, BugSnag or a similar service if you use one.
02
Capture the native logs
“Native logs often reveal the root cause when JavaScript error boundaries don't catch the problem.” Expo, Debugging runtime issues
Connect a device that crashes. On Android, run adb logcat. On iOS, open the Console app on your Mac, select the device under Devices and click Start streaming.
03
Run it in production mode locally
“Running your app in production mode locally will show errors that normally wouldn't be thrown.” Expo, Debugging runtime issues
Development mode hides some errors that only show up in a release build. Start the app locally in production mode to see them.
npx expo start --no-dev --minify04
Values from .env aren’t in the build
“During local development, environment variables are loaded from your local .env or .env.local files.” Expo, Environment variables in EAS
Locally, Expo reads .env and .env.local, which usually aren’t uploaded to EAS. If the app reads those values at startup, make sure they’re set for the EAS build, then build again.
05
Narrow it down change by change
“Apply your recent changes piece by piece, until it breaks.” Expo, Debugging runtime issues
If the logs don’t name the cause, go back to a version that worked, which can be a blank npx create-expo-app project, and add your recent changes back until it breaks.
Checked against the vendor’s docs on : Expo docs: Debugging runtime issues; Expo docs: Troubleshoot build errors and crashes; Expo docs: Environment variables in EAS.
Rather hand it over?
Fixed scope, fixed price, paid upfront. The work happens in writing; no call needed.
- from $450App Fix TicketOne reproducible bug in an existing mobile or web app, diagnosed and fixed.See scope and start
- from $450AI-Built App RescueA Lovable, Bolt or Cursor app checked end to end in 3 days, then its worst problems fixed at a fixed price.No issues worth fixing, no charge. If the Launch Check finds nothing rated medium or higher, Simon refunds the full $450. You keep the report either way.See scope and start
Related: Expo EAS build failed · App Store Guideline 2.1 rejection · Beta testing and crash reporting tools