Update Behavior
CodePushGo is intentionally conservative for React Native: it updates JavaScript bundles and bundled assets, while native code stays on the normal App Store and Play Store release path.
Default update flow
-
The React Native updater client starts with the app and resolves the app identity from the native bundle ID by default.
-
The client asks the Cloudflare Worker backend for the latest compatible release on the configured channel.
-
If a release exists, the client downloads the JavaScript bundle metadata and reports update stats.
-
The app keeps running the current bundle until the update can be applied without interrupting the user.
-
On the next safe app start or resume cycle, the app can load the newer bundle.
Channels and compatibility
The updater sends the same native bundle ID that the CLI used during init. That keeps the console, CLI, backend, and updater aligned on one app identity.
Each update check includes:
- app ID / native bundle ID
- platform, such as
iosorandroid - channel, usually
production - current native app version when available
- current JavaScript bundle version when available
The backend uses those values to return a compatible release or no update.
Recommended app startup
Configure the updater near the app entrypoint so update checks happen consistently.
import { configureCodePushGo, startCodePushGo } from '@codepushgo/react-native-updater'
configureCodePushGo({ endpoint: 'https://api.codepushgo.com' })await startCodePushGo({ defaultChannel: 'production' })For a staged environment, change the channel:
await startCodePushGo({ defaultChannel: 'beta' })User experience rules
Use live updates for JavaScript and asset changes that are compatible with the native binary already installed on the device.
Do not use live updates for:
- native module additions or removals
- entitlements, permissions, or plist/manifest changes
- SDK upgrades that require native code
- iOS or Android project configuration changes
Those changes still need a native binary release.
Applying updates safely
For most apps, the safe path is:
- upload the bundle to a non-production channel
- test on real iOS and Android devices
- promote to production
- monitor adoption and failures
- roll back the channel if needed
This matches the same release model: CLI upload, console channels, stats, and rollback, adapted to React Native and the CodePushGo Worker backend.