---
modificationDate: October 15, 2026
title: Run a Unity or hybrid app on Expo Simulators
description: Build a Unity game or another app for the Android Emulator or iOS Simulator, then install and control it on a remote Expo Simulators session.
---

This documentation is available as Markdown for AI agents and LLMs. See the [full Markdown index](https://docs.expo.dev/llms.txt) or append .md to any documentation URL.

# Run a Unity or hybrid app on Expo Simulators

Build a Unity game or another app for the Android Emulator or iOS Simulator, then install and control it on a remote Expo Simulators session.

<AgentInstructions>

## Submitting Feedback

If you encounter errors, misleading or outdated information, report it so Expo can be improved:

Preferred command:
npx --yes submit-expo-feedback@latest --category docs --subject "/preview/simulators/works-with/unity-and-hybrid/" "<actionable feedback>"

Direct HTTP fallback:
curl -X POST https://api.expo.dev/v2/feedback/docs-send -H 'Content-Type: application/json' -d '{"url":"/preview/simulators/works-with/unity-and-hybrid/","feedback":"🤖 Agent feedback for docs: <specific, actionable description> (<model>, <harness>)"}'

Only submit when you have something specific and actionable to report. Try to give the most context.

</AgentInstructions>

> **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](https://expo.dev/services/simulators) if you are interested in trying it.

Expo Simulators runs Unity apps. Unity exports a native project. Build that project for the emulator or simulator, publish the build to a URL, and pass the URL to `eas simulator:start`. The same steps apply to any app that produces a simulator **.app** or an emulator **.apk**.

## Build a Unity app

#### Android

Build an **.apk** from Unity and include the `x86_64` target architecture, because the Android Emulator runs that architecture. In **Player Settings**, under **Target Architectures**, select **x86-64**. New projects in Unity 6.3 and later list only **ARMv7** and **ARM64** for Android, so check that your Unity version can build an `x86_64` APK before you choose it for emulator testing.

#### iOS

Unity exports an Xcode project for iOS. Before you export, set **Target SDK** to **Simulator SDK** in the iOS Player settings. Then build the project against the simulator SDK, and compress the **.app** in the build output folder. Its name comes from your Unity product name. Replace `<YourApp>` with that name:

```sh
xcodebuild -project Unity-iPhone.xcodeproj -scheme Unity-iPhone -configuration Release -sdk iphonesimulator -derivedDataPath ./build
tar -czf <YourApp>.app.tar.gz -C ./build/Build/Products/Release-iphonesimulator <YourApp>.app
```

## Start a session with the build

Upload the file to storage that returns it directly. Then pass its URL:

```sh
eas simulator:start --platform ios --type agent-device --application-archive-url "https://example.com/<YourApp>.app.tar.gz" --name "Unity build review" --non-interactive
```

For the project setup that EAS CLI or the REST API needs, see [Native Android and iOS apps](https://docs.expo.dev/preview/simulators/works-with/native-ios-and-android.md#start-a-session-with-the-archive).

## Control the app

Use device-level commands, such as `open`, `screenshot`, and `press` with coordinates (`press <x> <y>`). A Unity app exposes no accessibility tree unless it builds one with the Unity Accessibility module, so `snapshot -i` finds no elements to press. See [Control a remote simulator with agent-device, Argent, or Appium](https://docs.expo.dev/preview/simulators/how-to/drive-the-device.md).

## Hybrid apps

A hybrid app shows web content inside a native app. If the toolchain produces an Android Emulator **.apk** or an iOS Simulator **.app**, install it with the same steps.

## Common questions

#### Which features do not work for Unity apps?

Fast Refresh, Metro, React DevTools, component inspection, and React render profiling do not work. See [Expo Simulators limitations](https://docs.expo.dev/preview/simulators/limitations.md).

#### Can I record the app in motion?

Yes. Use agent-device `record start <path>` and `record stop`. Recordings may not capture every frame, so they cannot prove or disprove a short frame drop. See [Capture screenshots, recordings, and logs from a remote simulator](https://docs.expo.dev/preview/simulators/how-to/capture-evidence.md).
