Expo EAS
Teams shipping over-the-air (OTA) releases built with Expo can connect Expo Application Services (EAS) to Runway to manage these releases and rollouts directly alongside their binary release process.
How it works
Runway treats Expo EAS as an app store destination, the same way it treats App Store Connect or Google Play Console for binary releases. Once connected, Runway can read your app's EAS update groups, channels, and branches, and use them to power two release steps:
Release: Publish an update group to your production channel directly from Runway
Rollout: Monitor and control the staged rollout of a published update, including adjusting the rollout percentage
Converting from legacy OTA CI distribution step
If your app was previously configured to publish OTA updates via a CI/CD workflow, connecting Expo EAS automatically converts your existing CI distribution step into an Expo Release step so that you no longer need a dedicated CI step just to ship an OTA update.
Existing release and rollout automations you've configured for CI-based OTA distribution carry over to the new Expo Release step. Nothing else about your Flightpath needs to change.
Expo EAS alongside binary releases
For teams shipping native code and OTA updates together, Expo EAS appears as its own app within your Flightpath, alongside iOS and Android. For example, a React Native app shipping to the App Store, Google Play, and OTA via Expo EAS might have a Flightpath like:
Kickoff
1 step for iOS, Android, & Expo
Feature readiness
1 step for iOS, Android, & Expo
Beta testing
3 steps
iOS step
Android step
Expo step (pointing to your Expo EAS beta/staging channel)
CI
2 steps
iOS / Android step
Expo step (publishing the update group to your Expo EAS staging channel that will be selected in the Release step)
Regression testing
1 step for iOS, Android, & Expo
Screenshots
2 steps
iOS app connected to App Store Connect
Android app connected to Google Play Console
Metadata
2 steps
iOS app connected to App Store Connect
Android app connected to Google Play Console
Approvals
1 step for iOS, Android, & Expo
Submission
2 steps
iOS app submits to App Store Connect
Android app submits to Google Play Console
Review
2 steps
iOS app reviewed in App Store Connect
Android app reviewed in Google Play Console
Release
3 steps
iOS app releases in App Store Connect
Android app releases in Google Play Console
OTA releases in Expo EAS
Rollout
3 steps
iOS app rollout in App Store Connect
Android app rollout in Google Place Console
OTA rollout in Expo EAS
The Release step for Expo EAS shows a list of eligible update groups for the branch mapped to your configured production channel, so you can pick the right update to publish without leaving Runway.
For each update group, you'll see:
Group ID
Branch
Channel
Runtime version
Created time
Platforms
Already-published update groups, along with rollback and republish groups, are excluded from this list, so you're only choosing between new, publishable updates.
Once an update is published, the Rollout step lets you monitor and manage its staged rollout the same way you would a phased release on the App Store or Google Play:
View current rollout percentage
Manually adjust the rollout percentage
View key rollout metrics for the update
Initial rollout percentage is configured on the Release step or on Settings > Workflow steps.
Set up
Navigate to the Integration settings view
Select an app in the top left corner from the Switcher
Navigate to App Settings by clicking the gear icon (⚙️) at the top of the Timeline sidebar
Click on Integrations in the sidebar
Connect to Expo EAS
Find the Expo EAS integration module under the App store section
Click the Connect button
Enter your Expo EAS project ID and an EAS access token with permission to read and publish updates for the project
Your EAS access token needs read access to update groups, channels, and branches, and permission to publish and roll out updates for the connected project. See Expo's documentation on access tokens for how to generate one.
Last updated
Was this helpful?