---
description: Create and manage Live Update channels in Capawesome Cloud — default and protected channels, staging vs production, and channel discovery.
title: Manage Live Update Channels - Capawesome
image: https://capawesome.io/docs/assets/images/social/cloud/live-updates/channels.png
---

[ Skip to content](#manage-channels) 

[ 🔐 Introducing the **Capacitor Vault** plugin — store secrets behind biometrics or a device passcode.](/blog/announcing-the-capacitor-vault-plugin/) 

* [  SDKs ](/docs/sdks/)
* [  Formbricks ](/docs/sdks/capacitor/formbricks/)
* [  Geocoder ](/docs/sdks/capacitor/geocoder/)
* [  Google Sign-In ](/docs/sdks/capacitor/google-sign-in/)
* [  Grafana Faro ](/docs/sdks/capacitor/grafana-faro/)
* [  libSQL ](/docs/sdks/capacitor/libsql/)
* [  Live Update ](/docs/sdks/capacitor/live-update/)
* [  Managed Configurations ](/docs/sdks/capacitor/managed-configurations/)
* [  Media Session ](/docs/sdks/capacitor/media-session/)
* [  ML Kit ](/docs/sdks/capacitor/mlkit/)
* [  Navigation Bar ](/docs/sdks/capacitor/navigation-bar/)
* [  NFC ](/docs/sdks/capacitor/nfc/)
* [  OAuth ](/docs/sdks/capacitor/oauth/)
* [  Pedometer ](/docs/sdks/capacitor/pedometer/)
* [  Photo Editor ](/docs/sdks/capacitor/photo-editor/)
* [  PostHog ](/docs/sdks/capacitor/posthog/)
* [  Printer ](/docs/sdks/capacitor/printer/)
* [  Purchases ](/docs/sdks/capacitor/purchases/)
* [  RealtimeKit ](/docs/sdks/capacitor/realtimekit/)
* [  Screen Orientation ](/docs/sdks/capacitor/screen-orientation/)
* [  Screenshot ](/docs/sdks/capacitor/screenshot/)
* [  Secure Preferences ](/docs/sdks/capacitor/secure-preferences/)
* [  Speech Recognition ](/docs/sdks/capacitor/speech-recognition/)
* [  Speech Synthesis ](/docs/sdks/capacitor/speech-synthesis/)
* [  Share Target ](/docs/sdks/capacitor/share-target/)
* [  Square Mobile Payments ](/docs/sdks/capacitor/square-mobile-payments/)
* [  SQLite ](/docs/sdks/capacitor/sqlite/)
* [  Superwall ](/docs/sdks/capacitor/superwall/)
* [  Torch ](/docs/sdks/capacitor/torch/)
* [  Vault ](/docs/sdks/capacitor/vault/)
* [  Wifi ](/docs/sdks/capacitor/wifi/)
* [  Zip ](/docs/sdks/capacitor/zip/)
* [  Cordova ](/docs/sdks/cordova/)
* [  Cloud ](/docs/cloud/)
* [  Channel Discovery ](#channel-discovery)
* [  Versioned channels ](#versioned-channels)
* [  Bonus: Video Walkthrough ](#bonus-video-walkthrough)
* [  Sign Your Bundles ](/docs/cloud/live-updates/code-signing/)
* [  Reduce Update Size ](/docs/cloud/live-updates/bundle-size/)
* [  Self-Host Bundles ](/docs/cloud/live-updates/self-hosting/)
* [  Proxy API Requests ](/docs/cloud/live-updates/request-proxying/)
* [  Manage Devices ](/docs/cloud/live-updates/devices/)
* [  Integrations ](/docs/cloud/live-updates/integrations/)
* Concepts
* Reference
* [  Troubleshooting ](/docs/cloud/live-updates/troubleshooting/)
* [  FAQ ](/docs/cloud/live-updates/faq/)
* [  Native Builds ](/docs/cloud/native-builds/)
* [  Set Up Environments ](/docs/cloud/native-builds/environments/)
* [  Overwrite Native Configurations ](/docs/cloud/native-builds/native-configurations/)
* [  Auto-Increment Build Numbers ](/docs/cloud/native-builds/auto-incrementing-build-numbers/)
* [  Configure the Web Build Script ](/docs/cloud/native-builds/web-build-script/)
* [  Build from a Monorepo ](/docs/cloud/native-builds/monorepo/)
* [  Use pnpm, Yarn, or bun ](/docs/cloud/native-builds/package-managers/)
* [  Install Private npm Packages ](/docs/cloud/native-builds/npm-private-registry/)
* [  Override the Java Version ](/docs/cloud/native-builds/override-java-version/)
* [  Custom iOS Provisioning Profiles ](/docs/cloud/native-builds/custom-ios-provisioning-profiles/)
* [  Build without Git ](/docs/cloud/native-builds/build-without-git/)
* [  Access Git Behind a Firewall ](/docs/cloud/native-builds/firewall-access/)
* [  Integrations ](/docs/cloud/native-builds/integrations/)
* Reference
* [  Troubleshooting ](/docs/cloud/native-builds/troubleshooting/)
* [  FAQ ](/docs/cloud/native-builds/faq/)
* [  App Store Publishing ](/docs/cloud/app-store-publishing/)
* [  Submit a Build ](/docs/cloud/app-store-publishing/submit-a-build/)
* [  Submit Automatically After a Build ](/docs/cloud/app-store-publishing/submit-automatically/)
* [  Troubleshooting ](/docs/cloud/app-store-publishing/troubleshooting/)
* [  FAQ ](/docs/cloud/app-store-publishing/faq/)
* [  Automations ](/docs/cloud/automations/)
* [  Reference ](/docs/cloud/automations/reference/)
* [  Troubleshooting ](/docs/cloud/automations/troubleshooting/)
* [  FAQ ](/docs/cloud/automations/faq/)
* [  Assist ](/docs/cloud/assist/)
* [  CLI ](/docs/cloud/cli/)
* APIs and SDKs
* [  Webhooks ](/docs/cloud/webhooks/)
* [  Integrations ](/docs/cloud/integrations/)
* Account
* [  Organization ](/docs/cloud/organizations/)
* [  Two-Factor Enforcement ](/docs/cloud/organizations/two-factor-authentication/)
* [  Audit Logs ](/docs/cloud/organizations/audit-logs/)
* [  Billing ](/docs/cloud/organizations/billing/)
* [  License Keys ](/docs/cloud/license-keys/)
* [  AI ](/docs/ai/)
* [  Insiders ](/docs/insiders/)
* [  Billing & Plans ](/docs/insiders/billing-and-plans/)
* [  FAQ ](/docs/insiders/faq/)
* [  License ](https://capawesome.io/legal/eula/)
* [  Support ](/docs/support/)
* [  Contributing ](/docs/contributing/)
* Contributing code
* [  Code of Conduct ](/docs/contributing/code-of-conduct/)
* [  Questions ](https://docs.github.com/en/discussions/collaborating-with-your-community-using-discussions/participating-in-a-discussion#creating-a-discussion)
* [  Blog ](/blog/)
* Categories

* [  Channel Discovery ](#channel-discovery)
* [  Versioned channels ](#versioned-channels)
* [  Bonus: Video Walkthrough ](#bonus-video-walkthrough)

# Manage Channels[¶](#manage-channels "Permanent link")

A **channel** is a named stream of Live Updates that a group of devices subscribes to. Channels let you deliver different bundles to different groups — for example a `staging` channel for testers and a `production` channel for everyone else, or one channel per native version to keep updates [version-compatible](/docs/cloud/live-updates/binary-compatible-changes/).

Every device receives updates from exactly one channel. How a device chooses its channel is covered in [Subscribe to a channel](/docs/cloud/live-updates/channel-subscription/); this page covers creating and managing the channels themselves. If you don't need per-device channels, [set a default channel](#default-channel) that is used automatically.

## Default Channel[¶](#default-channel "Permanent link")

Each app has a default channel named `default` to simplify the initial setup. This channel is used when no specific channel is specified during the bundle upload process or when fetching updates in your app using the [Live Update SDK](/docs/cloud/live-updates/setup/). A default channel is not required for your app to function. You can rename, delete, or [set another channel as the default channel](#set-default-channel) at any time.

![Default Channel](/docs/assets/images/screenshots/cloud-app-channels-default.png)

## Protected Channels[¶](#protected-channels "Permanent link")

Channels can be marked as "protected" to enhance the security of your live updates. When a channel is protected, all builds associated with that channel must be code-signed before they can be distributed to users. This ensures that only authorized builds are delivered through the protected channel. Read more about [Code Signing](/docs/cloud/live-updates/code-signing/) in Capawesome Cloud.

![Protected Channel](/docs/assets/images/screenshots/cloud-app-channels-protected.png)

## Manage Channels[¶](#manage-channels%5F1 "Permanent link")

You can manage channels associated with your app using the Capawesome CLI or the Capawesome Cloud Console.

### Create a channel[¶](#create-a-channel "Permanent link")

CLIConsole

To create a channel using the [Capawesome CLI](/docs/cloud/cli/), use the [apps:channels:create](/docs/cloud/cli/commands/#appschannelscreate) command:

`[](#%5F%5Fcodelineno-0-1)npx @capawesome/cli apps:channels:create
`

You will be prompted to select the app you want to create the channel for and to provide the name of the channel. The CLI will then create the channel in the Capawesome Cloud.

To create a channel using the [Capawesome Cloud Console](https://console.cloud.capawesome.io/), navigate to the app you want to create the channel for, and click on the [Channels](https://console.cloud.capawesome.io/apps/%5F/channels) menu item under the "Live Updates" section in the sidebar. Next, click on the "Create Channel" button and enter the name of the channel you want to create.

![Create Channel](/docs/assets/images/screenshots/cloud-app-channels-create.png)

### Update a channel[¶](#update-a-channel "Permanent link")

CLIConsole

To update a channel using the [Capawesome CLI](/docs/cloud/cli/), use the [apps:channels:update](/docs/cloud/cli/commands/#appschannelsupdate) command:

`[](#%5F%5Fcodelineno-1-1)npx @capawesome/cli apps:channels:update
`

You will be prompted to select the app you want to update the channel for and to provide the ID of the channel. The CLI will then update the channel in the Capawesome Cloud based on the provided information.

To update a channel using the [Capawesome Cloud Console](https://console.cloud.capawesome.io/), navigate to the app you want to update the channel for, and click on the [Channels](https://console.cloud.capawesome.io/apps/%5F/channels) menu item under the "Live Updates" section in the sidebar. Next, select the channel you want to update. In the menu, click on the "Edit" button to update the name and settings of the channel.

![Edit Channel](/docs/assets/images/screenshots/cloud-app-channels-update.png)

### Delete a channel[¶](#delete-a-channel "Permanent link")

CLIConsole

To delete a channel using the [Capawesome CLI](/docs/cloud/cli/), use the [apps:channels:delete](/docs/cloud/cli/commands/#appschannelsdelete) command:

`[](#%5F%5Fcodelineno-2-1)npx @capawesome/cli apps:channels:delete
`

You will be prompted to select the app you want to delete the channel for and to provide the name of the channel. The CLI will then delete the channel from the Capawesome Cloud.

To delete a channel using the [Capawesome Cloud Console](https://console.cloud.capawesome.io/), navigate to the app you want to delete the channel for, and click on the [Channels](https://console.cloud.capawesome.io/apps/%5F/channels) menu item under the "Live Updates" section in the sidebar. Next, select the channel you want to delete. In the menu, click on the "Delete" button to delete the channel.

![Delete Channel](/docs/assets/images/screenshots/cloud-app-channels-delete.png)

### Set default channel[¶](#set-default-channel "Permanent link")

Console

To set a channel as the [default channel](#default-channel) using the [Capawesome Cloud Console](https://console.cloud.capawesome.io/), navigate to the app you want to set the default channel for, and click on the [Settings](https://console.cloud.capawesome.io/apps/%5F/settings) menu item in the sidebar. Next, in the "Live Update Channels" section, enable the "Default Channel" toggle, select the channel you want to set as the default channel from the dropdown menu, and click on the "Save" button.

## Channel Discovery[¶](#channel-discovery "Permanent link")

Channel discovery allows the Live Update SDK to fetch the list of available channels without requiring authentication. This is useful for apps that want to let developers or QA select a channel from a list of available channels (e.g. a beta channel).

To enable channel discovery using the [Capawesome Cloud Console](https://console.cloud.capawesome.io/), navigate to the app you want to enable channel discovery for, and click on the [Settings](https://console.cloud.capawesome.io/apps/%5F/settings) menu item in the sidebar. Next, in the "Live Update Channels" section, enable the "Channel Discovery" toggle and click on the "Save" button.

Once enabled, you can use the `fetchChannels(...)` method of the Live Update SDK to fetch the list of available channels (available for both the Capacitor and Cordova plugins).

## Versioned channels[¶](#versioned-channels "Permanent link")

A Live Update may only reach devices whose native binary can run it — see [Binary-Compatible Changes](/docs/cloud/live-updates/binary-compatible-changes/) for why this matters and how it compares to [versioned bundles](/docs/cloud/live-updates/bundles/#versioned-bundles).

Versioned channels are the recommended way to enforce this: give each native release its own channel derived from its native version (e.g. `production-<version>`, where `<version>` is the Android `versionCode` or iOS `CFBundleVersion`), so a bundle uploaded for one native version is never delivered to a device running another. You configure the channel natively at build time, which means every release automatically ships pinned to its own channel with nothing to remember on each upload.

CapacitorCordova

On Android, add a resource value in `android/app/build.gradle`:

android/app/build.gradle

`[](#%5F%5Fcodelineno-3-1)android {
[](#%5F%5Fcodelineno-3-2)    defaultConfig {
[](#%5F%5Fcodelineno-3-3)        resValue "string", "capawesome_live_update_default_channel",
[](#%5F%5Fcodelineno-3-4)                 "production-" + defaultConfig.versionCode
[](#%5F%5Fcodelineno-3-5)    }
[](#%5F%5Fcodelineno-3-6)}
`

On iOS, add a key to `ios/App/App/Info.plist`:

ios/App/App/Info.plist

`[](#%5F%5Fcodelineno-4-1)<key>CapawesomeLiveUpdateDefaultChannel</key>
[](#%5F%5Fcodelineno-4-2)<string>production-$(CURRENT_PROJECT_VERSION)</string>
`

On Android, set the channel via a `build-extras.gradle` file included through your `config.xml`:

build-extras.gradle

`[](#%5F%5Fcodelineno-5-1)android {
[](#%5F%5Fcodelineno-5-2)    applicationVariants.all { variant ->
[](#%5F%5Fcodelineno-5-3)        variant.resValue "string", "capawesome_live_update_default_channel",
[](#%5F%5Fcodelineno-5-4)                         "production-" + variant.versionCode
[](#%5F%5Fcodelineno-5-5)    }
[](#%5F%5Fcodelineno-5-6)}
`

On iOS, add the channel key to your `Info.plist` via `config.xml`:

config.xml

`[](#%5F%5Fcodelineno-6-1)<platform name="ios">
[](#%5F%5Fcodelineno-6-2)  <config-file target="*-Info.plist" parent="CapawesomeLiveUpdateDefaultChannel">
[](#%5F%5Fcodelineno-6-3)    <string>production-$(CURRENT_PROJECT_VERSION)</string>
[](#%5F%5Fcodelineno-6-4)  </config-file>
[](#%5F%5Fcodelineno-6-5)</platform>
`

Every native release now ships pinned to its own channel, and uploads to `production-<version>` only reach matching devices. To override the channel at runtime instead of at build time, see [Subscribe to a channel](/docs/cloud/live-updates/channel-subscription/).

## Bonus: Video Walkthrough[¶](#bonus-video-walkthrough "Permanent link")

June 15, 2026 

 Back to top 