This documentation is available as Markdown for AI agents and LLMs. See the full Markdown index or append .md to any documentation URL.
Which build to install on Expo Simulators
Edit page
Learn how release builds, development builds, and Expo Go load JavaScript on Expo Simulators, which build formats install, and where EAS downloads each build.
Expo Simulators is a limited-access preview. It is not included with paid or free plans and is currently available only to select partners. Join the waitlist if you are interested in trying it.
An app on Expo Simulators shows the JavaScript that its build loads. A release build contains a JavaScript bundle from the time of the build. A development build loads the bundle from Metro, so it shows your current source. Expo Go also loads the bundle from Metro, but it contains only the native code that Expo Go includes. Select the build type before you install anything, because the wrong build type makes a screenshot show old code.
Where the JavaScript comes from
If you connect a release build to Metro, it continues to use its embedded bundle. To see live changes, install a development build.
Builds that install on a simulator
A remote device is a simulator or an emulator, so the build must target it:
An iOS archive must be a gzip tarball (.tar.gz or .tgz). The .app directory can be inside the archive. The archive can also hold the contents of the app bundle at its root.
Fingerprints and build freshness
A fingerprint is a hash of the native parts of a project. Two builds with the same fingerprint have the same native code. When you pass --build-fingerprint, EAS installs the most recent finished build with that fingerprint whose artifact has not expired. On iOS, EAS selects only simulator builds. On Android, EAS selects a build of any distribution type. An .aab build fails to install, so use a build profile that creates an .apk.
A matching fingerprint does not mean that the JavaScript matches. A release build with a matching fingerprint can contain an older bundle. To see current JavaScript, use a development build with Metro, or create a new release build.
Where EAS gets the build
A large local build takes longer, because your computer uploads it. When the build is at a URL, let the machine on EAS download it.
Launch arguments and URLs
When you install the app with an application source, EAS can launch it with arguments and then open a URL. EAS accepts up to 100 launch arguments, with a total size of up to 64,000 bytes. In an iOS agent-device or Argent session, EAS tries to approve the custom URL scheme first. Then the system Open in dialog does not appear. In other session types, or if the approval fails, the dialog can appear. Accept it in the browser preview or with the controller.