Connect your Expo project once and every new EAS build lands in Revyl automatically. No uploads, no manual steps. Every passing build is ready to test the moment EAS finishes it.Documentation Index
Fetch the complete documentation index at: https://docs.revyl.com/llms.txt
Use this file to discover all available pages before exploring further.
How It Works
- You give Revyl an Expo access token (stored encrypted)
- You link an EAS project to one or more Revyl apps (one Android, one iOS, or both)
- Revyl automatically registers a webhook on your EAS project using the token
- EAS fires the webhook to Revyl on every completed build
- Revyl filters the build, downloads the artifact, and creates a new Build inside the linked app
source: expo and an auto-generated version like expo-1.2.0-ios-a1b2c3d4. Native changes get a -native suffix so you can tell at a glance what changed.
Requirements
Expo access token
Create a Robot User access token at expo.dev/settings/access-tokens. Robot users are the recommended pattern for CI/integration tokens. Personal tokens work but aren’t ideal.The Robot User needs Developer role or higher on the EAS project. Read-only tokens can’t create webhooks and will fail at registration.
EAS project ID
Grab your project’s UUID from the Expo Dashboard or
app.json. It must be a valid UUID. The human-readable @owner/slug form is not accepted.Connecting
From Integrations
- Go to Integrations > Expo
- Paste your Robot User access token and save
- Click Add EAS Project
- Enter the EAS Project ID, a display name, and pick which Revyl Android and/or iOS apps it maps to
- Enable Auto-sync and save. Revyl registers the webhook on your EAS project in the background.
From the App Creation Flow
When creating an app, click Connect to Expo instead of uploading a file. The flow prompts for the token if you don’t have one, then shows a project picker. Revyl auto-selects the latest compatible build (non-production, non-expired, matching platform) and imports it as your first build. Future builds sync automatically.What Gets Synced
On each EASBUILD event with status=finished, Revyl:
- Verifies the webhook signature (HMAC-SHA1
expo-signature) - Matches the build to an org via the signature
- Filters out:
- Production profiles (filtered by name on Android)
- Expired artifact URLs
- iOS builds without
"simulator": true .aabAndroid builds
- Downloads the artifact using your Expo token
- Creates a new build in the linked Revyl app, comparing its
fingerprintHashto the previous build to detect native changes
Gotchas
- One EAS project maps to one app per platform. Connecting the same project to a new app reassigns the binding; the old app stops auto-syncing.
- Production profiles are filtered on purpose. Revyl doesn’t import production builds via auto-sync. Upload them manually if you need to test production artifacts.
- If webhook registration fails, it’s usually because the Robot User has read-only access. The Robot needs Developer role or higher on the EAS project.
- If builds aren’t showing up, check: missing
simulator: trueon iOS,.aabinstead of.apkon Android, or expired artifact URL. - Auto-sync stops if the token is removed. Disabling auto-sync also deletes the webhook from EAS automatically.
Related
- Apps - create apps and manage builds
- Expo Build Guide - configuring
eas.jsonfor Revyl - Integrations overview