expo-updates
Version: 55.0.8 Fetches and manages remotely-hosted assets and updates to your app’s JS bundle. Enables over-the-air (OTA) updates so you can ship bug fixes and features without waiting for app store approval.Installation
Usage
API Reference
Properties
string | null
The UUID of the current update, or
null in developmentstring | null
The release channel configured for this app
string
The runtime version for this build
boolean
Whether the app is running in emergency mode (after a fatal error)
boolean
Whether the app is running the bundled update (not downloaded OTA)
Methods
() => Promise<UpdateCheckResult>
Checks if a new update is availableReturns:
() => Promise<UpdateFetchResult>
Downloads the most recent updateReturns:
() => Promise<void>
Reloads the app with the most recently downloaded update
(maxAge: number) => Promise<UpdatesLogEntry[]>
Reads expo-updates log entries
() => Promise<void>
Clears all expo-updates log entries
Events
(listener: (event: UpdateEvent) => void) => void
Hook to subscribe to update events
Examples
Check and Install Update
Auto-Update on App Start
Update with Progress Indicator
Listen to Update Events
Display Update Info
Staged Rollout
Debug Logs
Configuration
app.json:Check Automatically Options
ON_LOAD: Check on app load (default)ON_ERROR_RECOVERY: Only check after errorWIFI_ONLY: Only check on Wi-FiNEVER: Manual checks only
EAS Update
Publish updates with EAS:TypeScript
Platform Support
Updates do not work in Expo Go. Build a development or production build to test.
Best Practices
- Check on Launch: Check for updates when app starts
- Background Downloads: Download updates in background, apply on next launch
- Test Updates: Test updates on staging channel before production
- Handle Errors: Always wrap update calls in try/catch
- User Choice: Let users decide when to apply updates
- Monitor Logs: Use log entries to debug update issues