Channels
A channel points a group of React Native apps to a JavaScript bundle release. Use channels to separate production, beta, staging, and development update flows without rebuilding the native binary for every JavaScript change.
Common channel setup
Most teams start with:
productionfor App Store and Play Store usersbetafor TestFlight, internal testing, or QA usersdevelopmentfor local validation devices
Channel names are case-sensitive. Use one naming convention and keep it consistent in the CLI, console, and updater config.
Configure a channel in React Native
Set the default channel when starting the updater client:
import { configureCodePushGo, startCodePushGo } from '@codepushgo/react-native-updater'
configureCodePushGo({ endpoint: 'https://api.codepushgo.com' })await startCodePushGo({ defaultChannel: 'production' })For beta builds:
await startCodePushGo({ defaultChannel: 'beta' })Upload to a channel
Use the one-step release command when CodePushGo should build and upload the React Native bundle:
npx @codepushgo/cli@latest release --platform ios --version 1.0.1 --channel productionOr upload an existing bundle directory:
npx @codepushgo/cli@latest upload --platform android --version 1.0.1 --bundle-dir ./build/codepushgo/android --channel betaPromote a release
A typical release flow is:
-
Upload to
developmentfrom a local branch. -
Upload the same code to
betaafter local validation. -
Promote or upload to
productionafter QA signs off. -
Watch console release stats before expanding rollout.
Roll back a channel
If a release misbehaves, point the channel back to a previous known-good release in the console. Devices on that channel will receive the rollback target the next time they check for updates.
Read Rollbacks for the response flow.