Channels & Runtime Version
Channels control which audience receives a release — for example, a staging channel for testers and the default channel for everyone else. Runtime version creates a compatibility boundary between native builds and OTA bundles — each side only sees releases meant for its version.
Both are optional and build-time settings. Start with neither and add them when needed.
Channels
Base channel
If you omit channel from the plugin config, the app uses the unnamed base channel. This is the default and the simplest setup.
plugins: {
OtaKit: {
appId: "YOUR_OTAKIT_APP_ID"
}
}Release to the base channel:
otakit upload --release
Named channels
Add a channel when you want a separate rollout track — for example, internal QA, beta, or a staged production rollout.
plugins: {
OtaKit: {
appId: "YOUR_OTAKIT_APP_ID",
channel: "staging"
}
}Release to that channel:
otakit upload --release staging
Promoting across channels
You can upload once, test on one channel, then promote the same bundle to another.
# Upload and release to staging otakit upload --release staging # Promote that bundle to production later otakit release <bundle-id> --channel production
Runtime Version
When to use it
runtimeVersion is optional. Use it when a new store submission changes what the native shell expects from the web bundle. Devices on the old native build won't receive bundles meant for the new one, and devices on the new build won't receive old bundles.
Without runtimeVersion, all OTA releases share one lane per channel. With it, each runtime version gets its own lane.
How to use it
Set runtimeVersion in the plugin config before building.
plugins: {
OtaKit: {
appId: "YOUR_OTAKIT_APP_ID",
runtimeVersion: "2026.04"
}
}With that config:
- The plugin only requests releases matching that runtime version.
- CLI uploads inherit the same runtime version from the config.
- Old cached OTA bundles from a different runtime are ignored on startup.
Common setups
- Single stream — no channel, no runtime version. Everything goes to the base channel.
- Beta + production — use channels like
betaandproductionto split audiences. - New store baseline: — bump
runtimeVersionso the new native build starts a fresh OTA lane.