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