Skip to main content

OTA Update Deployment

Publish over-the-air updates to your mobile app without going through app stores.

Prerequisites

  • EAS CLI: npm install -g eas-cli
  • Logged in: eas login
  • App already published to at least one device

Publishing an Update

cd mobile
eas update --branch production --message "Brief description of changes"

Update for specific channel

# Preview channel (for testing)
eas update --branch preview --message "Fix attendance bug"

# Production channel (for all users)
eas update --branch production --message "v1.1.1 - Bug fixes"

How Users Get the Update

  1. User opens the app → update is downloaded in the background
  2. User is prompted: "An update is available. Restart now?"
  3. If they tap Update Now, the app restarts with the new version
  4. If they dismiss, the update applies on the next app restart

Users can also manually check via ProfileCheck for Updates.

Update Workflow

Testing

# 1. Make code changes
# 2. Publish to preview branch
eas update --branch preview --message "Test: fix XYZ"

# 3. Test on a device linked to preview channel
# 4. If good, publish to production
eas update --branch production --message "Fix XYZ"

Rollback

If an update causes issues, publish the previous working version:

# Revert your code changes
git checkout main

# Publish the reverted code
eas update --branch production --message "Rollback: revert XYZ"

Limitations

OTA updates can only change JavaScript code. Native changes require a full app store build. See OTA Updates for details on what can and cannot be updated.

Monitoring

View published updates and their status:

eas update:list

Or check the Expo dashboard for update analytics.