---
description: Learn how to restrict Capacitor Live Updates to specific native versions using versioned builds or channels to ensure compatibility and prevent issues.
title: How to restrict Capacitor Live Updates to Native Versions - Capawesome
image: https://capawesome.io/docs/assets/images/social/blog/how-to-restrict-capacitor-live-updates-to-native-versions.png
---

[ Skip to content](#how-to-restrict-capacitor-live-updates-to-native-versions) 

[ 🎉 Introducing **Capawesome Platform** — one platform for Live Updates, Native Builds, App Store Publishing, and Insider SDKs.](https://capawesome.io) 

* [  Formbricks ](/docs/plugins/formbricks/)
* [  Geocoder ](/docs/plugins/geocoder/)
* [  Google Sign-In ](/docs/plugins/google-sign-in/)
* [  libSQL ](/docs/plugins/libsql/)
* [  Live Update ](/docs/plugins/live-update/)
* [  Managed Configurations ](/docs/plugins/managed-configurations/)
* [  Media Session ](/docs/plugins/media-session/)
* [  ML Kit ](/docs/plugins/mlkit/)
* [  NFC ](/docs/plugins/nfc/)
* [  OAuth ](/docs/plugins/oauth/)
* [  Pedometer ](/docs/plugins/pedometer/)
* [  Photo Editor ](/docs/plugins/photo-editor/)
* [  PostHog ](/docs/plugins/posthog/)
* [  Printer ](/docs/plugins/printer/)
* [  Purchases ](/docs/plugins/purchases/)
* [  RealtimeKit ](/docs/plugins/realtimekit/)
* [  Screen Orientation ](/docs/plugins/screen-orientation/)
* [  Screenshot ](/docs/plugins/screenshot/)
* [  Secure Preferences ](/docs/plugins/secure-preferences/)
* [  Speech Recognition ](/docs/plugins/speech-recognition/)
* [  Speech Synthesis ](/docs/plugins/speech-synthesis/)
* [  Share Target ](/docs/plugins/share-target/)
* [  Square Mobile Payments ](/docs/plugins/square-mobile-payments/)
* [  SQLite ](/docs/plugins/sqlite/)
* [  Superwall ](/docs/plugins/superwall/)
* [  Torch ](/docs/plugins/torch/)
* [  Wifi ](/docs/plugins/wifi/)
* [  Zip ](/docs/plugins/zip/)
* [  Cloud ](/docs/cloud/)
* [  Live Updates ](/docs/cloud/live-updates/)
* Advanced
* Integrations
* [  Native Builds ](/docs/cloud/native-builds/)
* [  Configuration ](/docs/cloud/native-builds/configuration/)
* [  Environments ](/docs/cloud/native-builds/environments/)
* Guides
* [  Sample Projects ](/docs/cloud/native-builds/sample-projects/)
* [  Troubleshooting ](/docs/cloud/native-builds/troubleshooting/)
* [  Automations ](/docs/cloud/automations/)
* Account
* Organizations
* [  Organization and User Management ](/docs/cloud/organizations/memberships/)
* [  Single Sign-On (SSO) ](/docs/cloud/organizations/sso/)
* [  Teams ](/docs/cloud/organizations/teams/)
* [  Two-Factor Authentication ](/docs/cloud/organizations/two-factor-authentication/)
* [  Integrations ](/docs/cloud/integrations/)
* [  License Keys ](/docs/cloud/license-keys/)
* [  Webhooks ](/docs/cloud/webhooks/)
* [  Pricing ](https://capawesome.io/pricing/)
* [  FAQ ](/docs/cloud/faq/)
* [  Support ](/docs/cloud/support/)
* [  Contributing ](/docs/contributing/)
* [  LLMs ](/docs/llms/)
* [  Insiders ](/docs/insiders/)
* [  License ](https://capawesome.io/legal/eula/)
* [  Support ](/docs/insiders/support/)
* [  FAQ ](/docs/insiders/faq/)
* [  Blog ](/blog/)
* Categories

* Related links

# How to restrict Capacitor Live Updates to Native Versions[¶](#how-to-restrict-capacitor-live-updates-to-native-versions "Permanent link")

[Live Updates](/docs/cloud/live-updates/) are a powerful feature that allows you to deliver updates to your Capacitor app in real-time without having to resubmit your app to the app stores. However, it is important to make sure that only [Binary Compatible Changes](/docs/cloud/live-updates/faq/#what-are-binary-compatible-changes) are delivered to your users to prevent incompatible updates. In this guide, you will learn how to restrict live updates to specific native versions.

Deprecated 

This guide is deprecated. Please refer to the [Best Practices](/docs/cloud/live-updates/guides/best-practices/) guide for the latest information.

## Introduction[¶](#introduction "Permanent link")

The [Capawesome Cloud](/docs/cloud/) offers two different ways to restrict live updates to specific native versions:

1. [Versioned Bundles](#versioned-bundles)
2. [Versioned Channels](#versioned-channels)

Let's take a closer look at both options.

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

Versioned bundles allow you to restrict live updates to specific native versions by defining a range of version codes for each platform.

Version Code 

The version code (named [versionCode](https://developer.android.com/studio/publish/versioning) on Android and [CFBundleVersion](https://developer.apple.com/documentation/bundleresources/information%5Fproperty%5Flist/cfbundleversion) on iOS) is the internal version number of your app. It is used to determine whether one version is more recent than another and must be incremented each time you release a new version of your app.

To create a versioned build, you only need to specify the minimum and maximum version codes for each platform:

* **Minimum**: The native binary must have at least this version code to be compatible with the bundle.
* **Maximum**: The native binary must have at most this version code to be compatible with the bundle.
* **Equivalent**: If the native binary has this exact version code, do **NOT** download the bundle, because they are equal.

For this, you can use the following [Capawesome CLI](/docs/cloud/cli/) command:

`[](#%5F%5Fcodelineno-0-1)npx @capawesome/cli apps:liveupdates:upload --android-min 10 --android-max 12 --android-eq 11 --ios-min 10 --ios-max 12 --ios-eq 11
`

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

Versioned channels allow you to restrict live updates to specific native versions by defining a channel for each version code.

Channel 

A Channel allows you to distribute different versions of your app to different groups of users.

To create a versioned channel, you can use the following [Capawesome CLI](/docs/cloud/cli/) command:

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

In this example, we created a channel named `production-10` for the version code `10`.

To upload a bundle to a specific channel, you can use the following [Capawesome CLI](/docs/cloud/cli/) command:

`[](#%5F%5Fcodelineno-2-1)npx @capawesome/cli apps:liveupdates:upload --channel production-10
`

Finally, we need to set the correct channel in the app to ensure that only compatible bundles are downloaded:

`` [](#%5F%5Fcodelineno-3-1)import { LiveUpdate } from '@capawesome/capacitor-live-update';
[](#%5F%5Fcodelineno-3-2)
[](#%5F%5Fcodelineno-3-3)const sync = async () => {
[](#%5F%5Fcodelineno-3-4)  // Get the version code of the native app
[](#%5F%5Fcodelineno-3-5)  const { versionCode } = await LiveUpdate.getVersionCode();
[](#%5F%5Fcodelineno-3-6)  // Select the channel based on the version code
[](#%5F%5Fcodelineno-3-7)  await LiveUpdate.setChannel({ channel: `production-${versionCode}` }); 
[](#%5F%5Fcodelineno-3-8)  // Automatically download and set the latest compatible bundle
[](#%5F%5Fcodelineno-3-9)  await LiveUpdate.sync();
[](#%5F%5Fcodelineno-3-10)};
 ``

## Conclusion[¶](#conclusion "Permanent link")

By following the steps in this guide, you can ensure that only compatible updates are delivered to your users and prevent any issues caused by incompatible changes. While [Versioned Builds](#versioned-builds) seems to be the more straightforward approach, [Versioned Channels](#versioned-channels) are the recommended way to restrict live updates to specific native versions because they are easier to manage and therefore less error-prone.

If you have any questions, just [create a discussion](https://github.com/capawesome-team/capacitor-plugins/discussions/new/choose) in the GitHub repository. Make sure you follow [Capawesome](https://twitter.com/capawesomeio) on X so you don't miss any future updates.

March 18, 2026 

 Back to top 