Skip to main content
Create simulator builds for your Expo React Native app.

Prerequisites

# Install required tools
npm install -g @expo/cli eas-cli

Setup

Initialize EAS Build in your project:
cd /path/to/your-expo-project
eas build:configure
This creates eas.json in your project root.

iOS Simulator Build

1. Configure Profile

Add iOS simulator profile to eas.json:
{
  "build": {
    "ios-simulator": {
      "ios": {
        "simulator": true
      }
    }
  }
}

2. Build

eas build -p ios --profile ios-simulator

3. Download

EAS outputs a download link:
✔ Build finished
🍎 https://expo.dev/artifacts/eas/abc123.tar.gz
Download and extract the .tar.gz file to get your .app.

4. Verify

Test before uploading:
  1. Open iOS Simulator
  2. Drag .app file onto simulator
  3. App should install and launch

Android Emulator Build

1. Configure Profile

Add Android profile to eas.json:
{
  "build": {
    "android-emulator": {
      "android": {
        "buildType": "apk"
      }
    }
  }
}

2. Build

eas build -p android --profile android-emulator

3. Download

✔ Build finished
🤖 https://expo.dev/artifacts/eas/xyz789.apk
Download the .apk file directly.

4. Verify

Test before uploading:
# Start emulator, then install
adb install your-app.apk

Build Both Platforms

Create a combined profile:
{
  "build": {
    "simulator-builds": {
      "ios": { "simulator": true },
      "android": { "buildType": "apk" }
    }
  }
}
Build both:
eas build --platform all --profile simulator-builds

Upload to Revyl

  1. Go to Builds page
  2. Click Upload Build
  3. Select platform
  4. Upload .app (iOS) or .apk (Android)
  5. Done!

Authenticated Test States

To skip login screens in Revyl cloud-agent runs and repeatable tests, add a test-only auth-bypass deep link handler to your Expo root layout. For Expo development clients, start the project through revyl dev --tunnel --launch-var, then open the app-specific auth link with revyl device navigate; YAML navigate steps can use the same link once the session is running. See Auth Bypass Deep Links for the Expo Router snippet, the CLI-first Expo flow, and the Bug Bazaar sample.

Troubleshooting

  • Check EAS build credits
  • Verify package.json dependencies
  • Review logs in EAS dashboard
  • Validate eas.json syntax
  • Extract .tar.gz completely
  • Drag .app file itself, not folder
  • Check simulator iOS version compatibility
  • Restart simulator
  • Check emulator is running: adb devices
  • Force reinstall: adb install -r your-app.apk
  • Clear emulator storage if full
  • Re-download if file corrupted

Resources