Skip to main content
reopt Handbook
reopt Handbook
Expo Enterprise Production

New Architecture

SDK 56 Breaking ChangesNew Architecture Deep DiveReact 19.2 Concurrency Patterns

Native Extensions

Expo UI Nativeexpo-widgets Home Screen WidgetsExpo Modules API v2 Native Extensions

Build and Release

Advanced EAS Build PipelinesEAS Update OTA StrategySecurity, Signing, and Compliance

Operations and Quality

Performance Monitoring and ProfilingTesting StrategyEnterprise Distribution and MDM

Appendix

Verification ReportUpdates
Handbook›Expo Enterprise Production›EAS Update OTA Strategy
한국어English

EAS Update OTA Strategy

Channels, branches, rollouts, rollback strategy, and enterprise OTA operations.

Key takeaways

  • SDK 56 enables Hermes bytecode diffing by default, so clients download binary patches instead of full OTA bundles.
  • Map production, staging, and preview channels to matching branches, and pair --rollout-percentage with EAS Observe gates from 1% to 100%.
  • Use update:rollback to return to the embedded binary and update:republish to restore a healthy previous update.
  • Set runtimeVersion.policy to fingerprint so native changes force a new build instead of shipping an incompatible OTA.

Hermes Bytecode Diffing by Default

In SDK 56, Hermes bytecode diffing in expo-updates and EAS Update is the default. Clients can download binary patches instead of full bundles, reducing OTA payload size.

{
  "expo": {
    "updates": {
      "enableBsdiffPatchSupport": false
    }
  }
}

Use that opt-out only for debugging. Normal production should keep the default and monitor payload size, bundle load time, and startup regression in EAS Observe.

Release Commands

eas update --environment production --branch production
eas update --environment preview --branch preview --message "QA candidate"
eas update --rollout-percentage 10 --branch production

--environment applies EAS environment variables during update export. Keep production and preview API values separated because EXPO_PUBLIC_* can be inlined into the client bundle.

Channel and Branch Strategy

Rollback Strategy

eas update:rollback --branch production
eas update:republish --group <update-group-id> --branch production
eas update:edit
MethodUse when
republish a previous updateJS or asset bug and the previous update is healthy
embedded update rollbackstop all OTA updates for the runtime and return to the bundle shipped in the binary

Runtime Version Policy

Do not let native compatibility depend on human memory. SDK upgrades, native module additions, config plugin changes, and permission changes usually need a new binary.

{
  "expo": {
    "runtimeVersion": {
      "policy": "fingerprint"
    }
  }
}

Fingerprint policy reduces incompatible update risk, at the cost of requiring new builds more often.

Rollout Gate

StageGate
1%internal dogfood, crash-free sessions at 99.5%+
10%EAS Observe cold launch and TTI P95 no more than 10% worse
50%support ticket and backend error rate normal
100%release note, store metadata, and rollback point recorded

During rollout, avoid overwriting the same runtime with a new update before checking eas update:list and eas update:view.

OTA Time Saved

Quarterly days saved=(store review days−OTA deployment days)×urgent patches per quarter\text{Quarterly days saved} = (\text{store review days} - \text{OTA deployment days}) \times \text{urgent patches per quarter}Quarterly days saved=(store review days−OTA deployment days)×urgent patches per quarter

Related docs

Performance Monitoring and Profiling

EAS Observe, Hermes profiling, memory management, ANR, and crash tracking.

Testing Strategy

E2E, native module tests, visual regression, and release gates for Expo SDK 56 apps.

Vercel Deployment

Enterprise Project Architecture · Organize project, environment, preview, and production deployment rules for enterprise teams.

Advanced EAS Build Pipelines

Build profiles, cache strategy, EAS environments, and monorepo optimization.

Security, Signing, and Compliance

App integrity, OTA code signing, credential management, and enterprise release controls.

On this page

Hermes Bytecode Diffing by DefaultRelease CommandsChannel and Branch StrategyRollback StrategyRuntime Version PolicyRollout GateOTA Time Saved