Vibeview
Pricing
Integration

Test an Expo Build in the Browser

Expo works with VibeView, but only one build profile does, and picking the wrong one is the single most common reason an upload gets rejected. The short version: you need an EAS build with a simulator profile, not Expo Go and not a store build. Once you have that, the device runs in a browser tab and attaches to the Expo dev server you already have running.

How it works

  1. 1. Build with a simulator profile, not Expo Go

    Expo Go is Expo's own app, not yours — uploading it gets you a running copy of Expo Go with none of your code in it. What you need is a development or preview build with a simulator profile in eas.json. That build output contains the simulator .app the upload expects.

    {
      "build": {
        "preview": {
          "distribution": "internal",
          "ios": { "simulator": true }
        }
      }
    }
  2. 2. Produce the build and upload it

    Run the EAS build for that profile and upload the result. For Android, the .apk your existing build already produces works as-is. Uploads are capped at 500 MB, which is comfortably above a typical Expo simulator build.

    eas build --profile preview --platform ios
    # download the artifact, then
    vibeview upload-app path/to/YourApp.app
    
    # Android
    eas build --profile preview --platform android
    vibeview upload-app path/to/YourApp.apk
  3. 3. Attach the Expo dev server

    Start Expo as usual and run vibeview dev. The CLI recognises Expo's dev server as well as bare Metro, so hot reload works the same way — save a file and the cloud device updates. It checks the dev server is reachable before creating a session rather than opening one your app cannot talk to.

    # terminal 1
    npx expo start
    
    # terminal 2
    vibeview dev
  4. 4. If the upload is rejected

    Two causes account for nearly all of them. An .ipa is a device build and will never install on a simulator — the rejection message says so. And an EAS build made without "simulator": true produces a device binary even on the preview profile, which fails the same way. Rebuild with the profile above rather than retrying the upload.

Full setup instructions live in the documentation.

Add Expo to your pipeline

Start free and run your first check on a live device.