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
- User opens the app → update is downloaded in the background
- User is prompted: "An update is available. Restart now?"
- If they tap Update Now, the app restarts with the new version
- If they dismiss, the update applies on the next app restart
Users can also manually check via Profile → Check 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.