This documentation is available as Markdown for AI agents and LLMs. See the full Markdown index or append .md to any documentation URL.
Run a Flutter app on a remote Android Emulator or iOS Simulator
Edit page
Build a Flutter app for the Android Emulator or iOS Simulator, then install and control it on Expo Simulators from an archive URL.
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.
Expo Simulators runs Flutter apps that are built for the Android Emulator or iOS Simulator. Build the app for the emulator or simulator with the Flutter CLI, publish the build to a URL, and pass the URL to eas simulator:start. You control the app with device-level commands, such as snapshots, presses, and screenshots.
Build the app
Use the .apk that the command creates. An .aab fails to install.
The second command compresses Runner.app into Runner.app.tar.gz.
Start a session with the build
Upload the file to storage that returns it directly. Then pass its URL:
EAS CLI needs package.json and an app config with the EAS project ID in the current directory. You can also use the REST API with only the project ID. For both setups, see Native Android and iOS apps.
Control the app
Replace <application-id> with the bundle identifier or package name of the Flutter app. Stop the session when you finish:
Limitations
Device-level control works for Flutter apps. The React Native features of the controllers do not work, and Fast Refresh with Metro does not apply. See Expo Simulators limitations.