How this failure looks
When a dev-mode build is uploaded, the app launches but immediately shows one of these screens instead of your app:- A red error screen with “No script URL provided”
- “Could not connect to development server”
- “Unable to load script. Make sure you’re either running Metro…”
- The Expo dev launcher asking for a development server URL
MOBILE_RELEASE_BUILD_REQUIRED and links to this page.
Why it happens
Development builds (Debug configuration on iOS, debug variant on Android, and Expo builds with expo-dev-client / developmentClient: true) expect a Metro dev server to serve the JavaScript bundle over the network. That works on your machine and simulator, but not on a remote test device.
TesterArmy needs a self-contained build with the JavaScript bundle embedded in the app binary.
How to fix it
Build a release artifact and upload that instead.- iOS
- Android
Build a Release iOS Simulator app. For Expo / React Native projects, generate native files first if needed:The
-configuration Release flag is what embeds the JavaScript bundle. The simulator app bundle ends up under:Expo EAS builds
If you build with EAS, make sure the build profile you upload from does not use a development client:"developmentClient": true in the profile used for TesterArmy uploads - it produces an expo-dev-client build that opens the dev launcher instead of your app.
See Expo EAS for the full CI workflow.
Verify before uploading
To check a build locally, install it on a simulator/emulator without Metro running (do not runnpx expo start or npm start) and launch it. If the app opens normally, it is self-contained and ready to upload. See App Uploads for upload instructions.