Channels

Most apps should start with the base channel only. Channels are optional named release tracks such as staging or production.

Base channel first

If you omit channel from the plugin config, the app uses the base channel.

plugins: {
  OtaKit: {
    appId: "YOUR_OTAKIT_APP_ID"
  }
}

Release to the base channel with:

otakit upload --release

Named channels

Add a channel only when you want a separate rollout track for a specific build, such as internal QA or staged production rollout.

plugins: {
  OtaKit: {
    appId: "YOUR_OTAKIT_APP_ID",
    channel: "staging"
  }
}

Release to that channel with:

otakit upload --release staging

Promote an existing bundle

You can upload once, test it, then promote the same bundle to another channel later.

# Upload and release to staging
otakit upload --release staging

# Promote that bundle to production later
otakit release <bundle-id> --channel production

Common setups

  • One stream only: no channel in the app config, release everything to the base channel.
  • Staging and production: internal builds the base channel or the channel: "staging", production builds use channel: "production".

Rules

  • Channel is a build-time setting in capacitor.config.ts.
  • Omit channel to use the base channel.
  • Add named channels only when you really need separate release tracks.