ManagedQA PartnersSee plans

Stack · Expo

Release testing for Expo apps

EAS Update ships JavaScript changes over the air without a store submission, and EXPO_PUBLIC_ variables are inlined into that bundle. Both are release surfaces the checklist treats as such.

Termsclient bundle (the JavaScript your app sends to the browser or ships inside the mobile app; anyone can read it) · store sandbox (Apple's and Google's test environments where purchases run without real money) · critical flow (a path a user takes that costs money or trust if it breaks: sign-up, checkout, invite, export) · verdict (a one-word release result (pass, pass with findings, fail) with the findings and the checklist version behind it) · CI (the pipeline that builds and tests every change before it can be merged or deployed)

What Expo changes in a codebase

The framework most new React Native apps use, with EAS Build for binaries and EAS Update for over-the-air JavaScript updates that bypass the store submission step.

An OTA update is one command from any machine with the right token. The checklist requires the same verdict before an update publishes as before a store build, and requires that republish (the rollback) has been exercised.

Defaults, from the docs verified 2026-09-21

Verified defaults for Expo
Default, from the docsWhy it matters for release testingSource
EAS Update enables "an app to update its own non-native pieces (such as JS, styling, and images) over-the-air"; native code changes need a new build.An OTA update is a release; MB-04 requires the same verdict step before publish.docs
verified 2026-09-21
"your updates need to follow the App Store and Play Store guidelines, including the content of the updates and how you use them. This usually means changes to your app's behavior need to be reviewed."A behaviour change shipped OTA to avoid review is a store-policy risk as well as a testing gap.docs
verified 2026-09-21
To roll back a problematic update "you can republish a previous, stable version on top of the problematic one."MB-04's pass criterion includes having exercised republish this month.docs
verified 2026-09-21
"Do not store sensitive info, such as private keys, in EXPO_PUBLIC_ variables"; they "will be visible in plain-text in your compiled application."SC-03 lists every EXPO_PUBLIC_ variable; SC-01 scans the compiled bundle.docs
verified 2026-09-21

Each row was read on the linked page on the date shown. Docs change; the date tells you how current the row is. Expo documentation.

Failure patterns most associated

All 12 patterns tagged Expo in the catalogue

How the checklist adapts

  • MB-04 reads the update pipeline and requires a recorded verdict before publish and a republish exercised this month.
  • SC-03 lists every EXPO_PUBLIC_ variable; SC-01 scans the compiled bundle.
  • Store-guideline behaviour changes shipped OTA are flagged in the verdict.
  • All React Native items apply; Expo adds the OTA channel and EAS secrets to the configuration review (SC-04).

Release checklist, five of the published items

v1.0 · verified on 2026-09-21
MB-01

Purchase flows verified in sandbox on target OS versions

manual Complete each purchase and restore flow with an Apple sandbox account and a Play license tester on the oldest and newest supported OS versions.

Pass when

Every purchase, restore and failed-payment path ends in the entitlement state the written rules specify on both OS versions.

critical
growth, scale
SC-03

Public environment prefix carries only public values

manual List every variable with a client-exposed prefix (NEXT_PUBLIC_, EXPO_PUBLIC_, VITE_, REACT_APP_) and confirm each one is meant to be public.

Pass when

Every client-prefixed variable is documented as public; no variable holds a key that can write or read beyond the anonymous role.

high
starter, growth, scale
AU-07

User-supplied content renders inert

automated Submit script, event-handler and URL payloads through every free-text field and view every screen that displays them.

Pass when

No payload executes on any screen; content displays as text.

high
starter, growth, scale
LM-03

Model output is treated as untrusted before rendering or execution

automated Force outputs containing HTML, script, markdown links and shell-like strings through every render and execution path.

Pass when

Output renders inert; nothing from the output is executed, evaluated or used as a URL without validation.

high
growth, scale
DR-01

Production deploys are triggered only from the reviewed branch in CI

manual Read the deployment configuration and the last 10 production deploy records.

Pass when

Every production deploy in the sample originates from CI on the protected branch; no local push or agent session deployed to production.

high
starter, growth, scale

Read the full checklist

Which plan fits

Growth $5,900/mo

Growth for one platform; Scale for both.

For 8-15 engineers, daily releases, web plus API or one mobile platform. Limits, cadence and what is not included.

Questions

Expo app store release checklist
Store build through EAS Build with production configuration (SC-04), the five mobile gates on release builds (MB-01 to MB-05), no secret in EXPO_PUBLIC_ variables (SC-03), and the OTA channel gated by the same verdict (MB-04). Each item has a pass criterion on the checklist page.
Mobile app release gate checklist
For an Expo app the gate applies to two channels: the store build and the OTA update. Both need a recorded verdict before publish, and republish of the previous update is rehearsed monthly. Items MB-01 to MB-05, with MB-04 covering the OTA channel.