For the complete documentation index, see llms.txt. This page is also available as Markdown.

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:

Step archetype
Step configuration

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

  1. Select an app in the top left corner from the Switcher

  2. Navigate to App Settings by clicking the gear icon (⚙️) at the top of the Timeline sidebar

  3. Click on Integrations in the sidebar

Connect to Expo EAS

  1. Find the Expo EAS integration module under the App store section

  2. Click the Connect button

  3. 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?