Skip to main content
Mobile Launcher
Learning & TutorialsTesting & Deployment

Shipping & Updates

CI/CD with EAS Build and OTA Updates

Shipping Your App

We use EAS (Expo Application Services) for building and deploying.

1. EAS Build (The Binary)

EAS Build compiles your native Android (.apk/.aab) and iOS (.ipa) binaries in the cloud.

Key Config: eas.json

Json
{
  "build": {
    "development": {
      "developmentClient": true,
      "distribution": "internal"
    },
    "production": {
      "channel": "production"
    }
  }
}

Commands

  • Build Dev Client: eas build --profile development --platform ios
  • Build for Store: eas build --profile production --platform all

2. EAS Update (OTA)

"Over The Air" updates allow you to fix bugs without going through the App Store review process.

How it works

  1. You change JS/TS code.
  2. You run eas update.
  3. Users download the new bundle silently on next launch.

Important Rules

[!WARNING] Native Changes: If you install a new native library (e.g., camera or maps), OTA updates will CRASH the app for users who have the old binary. You MUST build a new binary (eas build) for native changes.

Commands

  • Preview: eas update --branch preview
  • Production: eas update --branch production

3. Versioning Strategy

  • version in app.json = The Native Binary Version (e.g., 1.0.0). Change this for Store submissions.
  • runtimeVersion in app.json = The Policy for OTA. Usually matches sdkVersion or appVersion.