{"id":24836824,"url":"https://github.com/revopush/code-push-cli","last_synced_at":"2025-07-30T00:33:22.546Z","repository":{"id":274087279,"uuid":"921758856","full_name":"revopush/code-push-cli","owner":"revopush","description":"The Ultimate Alternative to CodePush - Real-time updates with full cloud support, CodePush SDK compatibility, and simple migration from App Center","archived":false,"fork":false,"pushed_at":"2025-04-21T20:16:21.000Z","size":276,"stargazers_count":5,"open_issues_count":4,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-31T08:30:14.107Z","etag":null,"topics":["codepush","ota","ota-update","react-native"],"latest_commit_sha":null,"homepage":"https://revopush.org/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/revopush.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-24T15:04:48.000Z","updated_at":"2025-04-08T16:03:08.000Z","dependencies_parsed_at":"2025-01-24T20:33:10.633Z","dependency_job_id":null,"html_url":"https://github.com/revopush/code-push-cli","commit_stats":null,"previous_names":["revopush/code-push-cli"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/revopush/code-push-cli","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/revopush%2Fcode-push-cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/revopush%2Fcode-push-cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/revopush%2Fcode-push-cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/revopush%2Fcode-push-cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/revopush","download_url":"https://codeload.github.com/revopush/code-push-cli/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/revopush%2Fcode-push-cli/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267785729,"owners_count":24144119,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-29T02:00:12.549Z","response_time":2574,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["codepush","ota","ota-update","react-native"],"created_at":"2025-01-31T05:43:54.096Z","updated_at":"2025-07-30T00:33:22.509Z","avatar_url":"https://github.com/revopush.png","language":"TypeScript","readme":"**Guide Overview:**\n1. [Introduction](#1-introduction)\n2. [Prerequisites](#2-prerequisites)\n    - 2.1 [Installing Required Tools](#21-installing-required-tools)\n    - 2.2 [Setting Up Revopush CLI](#22-setting-up-revopush-cli)\n3. [Migrating from Appcenter to Revopush](#3-migrating-from-appcenter-to-revopush)\n    - 3.1 [Logging In](#31-logging-in)\n    - 3.2 [Migrating Applications and Deployments](#32-migrating-applications-and-deployments)\n4. [Setting Up Revopush from Scratch](#4-setting-up-revopush-from-scratch)\n    - 4.1 [Logging In](#41-logging-in)\n    - 4.2 [Creating Applications](#42-creating-applications)\n    - 4.3 [Creating Deployments](#43-creating-deployments)\n5. [Updating Your React Native App](#5-updating-your-react-native-app)\n    - 5.1 [iOS Configuration](#51-ios-configuration)\n    - 5.2 [Android Configuration](#52-android-configuration)\n6. [Releasing Updates](#6-releasing-updates)\n    - 6.1 [For iOS](#61-for-ios)\n    - 6.2 [For Android](#62-for-android)\n    - 6.3 [Additional Options](#63-additional-options)\n7. [Summary and Resources](#7-summary-and-resources)\n\n## 1. Introduction\n\nWelcome! This guide will help you migrate your Over-the-Air (OTA) updates from Appcenter to Revopush. \nWith Revopush's Command Line Interface (CLI), you can easily push updates directly to your users' devices \nwithout needing to go through app stores.\n\n**What You'll Learn:**\n- How to install the Revopush CLI\n- Migrating your existing OTA updates from Appcenter\n- Setting up and managing your applications and deployments in Revopush\n- Updating your React Native app to use Revopush for OTA updates\n\nLet’s get started!\n\n## 2. Prerequisites\n\nBefore you begin, ensure you have the following (depends on your platform and preferences):\n\n- **Developer Tools Installed:**\n    - [Node.js](https://nodejs.org/)\n    - npm or Yarn\n    - npx\n    - [Android Studio](https://developer.android.com/studio)\n    - [Xcode](https://developer.apple.com/xcode/)\n    - [Visual Studio Code](https://code.visualstudio.com/)\n\n- **Permissions:**\n    - Ability to install npm packages globally.\n\n- **Revopush Account:**\n    - Sign up at [Revopush](https://revopush.org/) using GitHub or Google for authentication.\n\n- **(If Migrating) Appcenter Access:**\n    - Ensure you have access to your existing Appcenter account and its CLI.\n\n### 2.1 Installing Required Tools\nYou manage most of CodePush's functionality using the App Center CLI.\nIf you had one installed, you can update it to the latest version by running the following command:\n\n```shell\n   npm update -g appcenter\n```\n\nor install it from scratch by running the following command:\n\n```shell\n   npm install -g appcenter@latest\n```\n\nUpon installation or update, you can check the version of the App Center CLI by running the following command:\n\n```shell\n   appcenter -h\n```\n\nwhich will display the version of the App Center CLI you have installed with available commands.\n\n```shell\n$ appcenter -h \n\nVisual Studio App Center helps you build, test, distribute, and monitor mobile apps.\nVersion 3.0.3\n\nUsage: appcenter \u003ccommand\u003e\n\nCommands:\n    analytics                      View events, audience info, sessions, and other analytics for apps                                                        \n    apps                           View and manage apps                                                                                                      \n    build                          Start builds, get their status, and download artifacts                                                                    \n    codepush                       View and manage CodePush deployments and releases                                                                         \n    crashes                        Upload symbols for better crash reports                                                                                   \n    distribute                     Send builds to testers and manage distribution groups                                                                     \n    orgs                           Manage organizations                                                                                                      \n    profile                        Manage your profile                                                                                                       \n    telemetry                      Manage telemetry preferences                                                                                              \n    test                           Start test runs and get their status                                                                                      \n    tokens                         Manage API tokens                                                                                                         \n    help                           Get help using appcenter commands                                                                                         \n    login                          Log in                                                                                                                    \n    logout                         Log out                                                                                                                   \n    setup-autocomplete             Setup tab completion for your shell \n```\n\n### 2.2 Setting Up Revopush CLI\nSimilarly to Appcenter Revopush manages the most of CodePush's functionality using CLI.\n\nTo install it run the following command:\n\n**Install Revopush CLI:**\n```shell\n   npm install -g @revopush/code-push-cli\n```\n\n**Update Revopush CLI to the Latest Version:**\n```shell\n   npm update -g @revopush/code-push-cli\n```\n\nUpon installation or update, you can check the version of the Revopush CLI and the list of available commands by running the following command:\n\n**Verify Installation:**\n```shell\n   revopush -h\n```\n\nwhich will display the version of the Revopush CLI you have installed with available commands.\n\n```shell\nrevopush -h\n ____                 ____            _     \n|  _ \\ _____   _____ |  _ \\ _   _ ___| |__  \n| |_) / _ \\ \\ / / _ \\| |_) | | | / __| '_ \\ \n|  _ \u003c  __/\\ V / (_) |  __/| |_| \\__ \\ | | |\n|_| \\_\\___| \\_/ \\___/|_|    \\__,_|___/_| |_| CLI v0.0.1\n============================================\nRevopush is a service that enables you to deploy mobile app updates directly to your users devices. Visit our website https://revopush.org/ \n\nUsage: revopush \u003ccommand\u003e\n\nCommands:\n  revopush access-key     View and manage the access keys associated with your account\n  revopush app            View and manage your CodePush apps\n  revopush collaborator   View and manage app collaborators\n  revopush debug          View the CodePush debug logs for a running app\n  revopush deployment     View and manage your app deployments\n  revopush login          Authenticate with the CodePush server in order to begin managing your apps\n  revopush logout         Log out of the current session\n  revopush patch          Update the metadata for an existing release\n  revopush promote        Promote the latest release from one app deployment to another\n  revopush register       Register a new CodePush account\n  revopush release        Release an update to an app deployment\n  revopush release-react  Release a React Native update to an app deployment\n  revopush rollback       Rollback the latest release for an app deployment\n  revopush session        View and manage the current login sessions associated with your account\n  revopush whoami         Display the account info for the current login session\n\nOptions:\n      --help     Show help  [boolean]\n  -v, --version  Show version number  [boolean]\n\n```\n\n ## 3. Migrating from Appcenter to Revopush\n\nYou need to execute steps in this section if you have been using Appcenter for OTA updates and wish to migrate to Revopush.\n\nIf you did not use Appcenter OTA updates before and just wish to apply\nOTA on top of Revopush for your app feel free to skip this section and go to section [4](#4-setting-up-revopush-from-scratch).\n\n### 3.1 Logging In\n\nExecute the following command to login to Appcenter CLI using provider of your choice (GitHub, Facebook, Microsoft, Google):\n\n```shell\n  appcenter login\n```\n\nSimilarly, in a separate window login to Revopush CLI using the following command:\n\n```shell\n  revopush login\n```\n\n### 3.2 Migrating Applications and Deployments\n**1. List Your Appcenter Apps:**\n\n```shell\n  appcenter apps list\n```\n\nExample Output:\n\n```shell\n  johndoe/rn2_android\n  johndoe/rn2_ios\n```\n\nFor given guide we assume that `johndoe/rn2_android` is the React Native application for Android and `johndoe/rn2_ios`\nis the React Native application for iOS.\n\nYou can check target OS of the app using command `appcenter apps show -a \u003capp name here\u003e`.\n\n**Android:**\n\n```shell\nappcenter apps show -a johndoe/rn2_android\nApp Secret:            6c3cb412-105f-422f-b795-af53d0b36a5f\nDescription:           \nDisplay Name:          rn2_android\nName:                  rn2_android\nOS:                    Android\nPlatform:              React-Native\nRelease Type:          Alpha\nOwner ID:              a1265e53-0599-4340-8003-7c40f0caff38\nOwner Display Name:    John Doe\nOwner Email:           johndoe@joghdoe.com\nOwner Name:            johndoe\nAzure Subscription ID: \n```\n\n**iOS:**\n\n```shell\nappcenter apps show -a johndoe/rn2_ios    \nApp Secret:            37d1dce7-a991-4ccc-8a0c-1ff8ed00f45d\nDescription:           \nDisplay Name:          rn2_ios\nName:                  rn2_ios\nOS:                    iOS\nPlatform:              React-Native\nRelease Type:          \nOwner ID:              a2265e53-0699-4340-8003-7c41f0caff39\nOwner Display Name:    John Doe\nOwner Email:           johndoe@johndoe.com\nOwner Name:            johndoe\nAzure Subscription ID: \n```\n\n\n**2. Create Corresponding Revopush Apps:**\n\nRemove the username prefix when creating apps in Revopush.\n\n```shell\n  revopush app add rn2_ios\n  revopush app add rn2_android\n```\n\nExample Output:\n\n```shell\nSuccessfully added the \"rn2_ios\" app, along with the following default deployments:\n┌────────────┬────────────────────────────────────────┐\n│ Name       │ Deployment Key                         │\n├────────────┼────────────────────────────────────────┤\n│ Production │ Z7v_81HyATiWlqZjvQFyu9GIicXAVJHvdy5W-g │\n├────────────┼────────────────────────────────────────┤\n│ Staging    │ PjAEsKZUdAytb5Rq3Kb6yHVfn-H3VJHvdy5W-g │\n└────────────┴────────────────────────────────────────┘\n```\n\n```shell\nSuccessfully added the \"rn2_android\" app, along with the following default deployments:\n┌────────────┬────────────────────────────────────────┐\n│ Name       │ Deployment Key                         │\n├────────────┼────────────────────────────────────────┤\n│ Production │ EVGdS0GR4Sus584cdyZ95wmwI405VJHvdy5W-g │\n├────────────┼────────────────────────────────────────┤\n│ Staging    │ pkCafa80S-ji3y6Xey6zVcEju9AHVJHvdy5W-g │\n└────────────┴────────────────────────────────────────┘\n```\n\n\n**3. Replicate Deployments:**\n\nList Appcenter deployments:\n\n```shell\nappcenter codepush deployment list -k -a johndoe/rn2_ios\n```\n\nAdd the same deployments in Revopush with identical keys\n\n```shell\nrevopush deployment add rn2_ios appcenter_Staging -k \u003cStaging_Key\u003e\nrevopush deployment add rn2_ios appcenter_Production -k \u003cProduction_Key\u003e\n```\n\nRepeat for Android\n\n```shell\nappcenter codepush deployment list -k -a johndoe/rn2_android\nrevopush deployment add rn2_android appcenter_Staging -k \u003cStaging_Key\u003e\nrevopush deployment add rn2_android appcenter_Production -k \u003cProduction_Key\u003e\n```\n\nRepeat for all other deployment you have in Appcenter and wish to continue to use in Revopush.\n\n## 4. Setting Up Revopush from Scratch\n\nIf you're new to Revopush and want to set up OTA updates for your app, follow these steps.\n\n### 4.1 Logging In\n\n```shell\n  revopush login\n```\n\n### 4.2 Creating Applications\n\n#### For iOS\n\n```shell\nrevopush app add myAmazingApp_ios\n```\n\n#### For Android:\n\n```shell\nrevopush app add myAmazingApp_android\n```\n\nThis will create your app along with default Staging and Production deployments.\n\n### 4.3 Creating Deployments\n\nIf you need more deployments (e.g., Development, Testing), use:\n\n```shell\nrevopush deployment add myAmazingApp_android Development\n```\n\nList All Deployments:\n\n```shell\nrevopush deployment ls myAmazingApp_android -k\n```\n\n## 5. Updating Your React Native App\n\nAfter setting up Revopush, update your React Native application to point to the Revopush server.\n\n### 5.1 iOS Configuration\n\n1. **Open `Info.plist`:** Add the following entries:\n\n```xml\n\u003ckey\u003eCodePushDeploymentKey\u003c/key\u003e\n\u003cstring\u003eYour_Deployment_Key\u003c/string\u003e\n\u003ckey\u003eCodePushServerURL\u003c/key\u003e\n\u003cstring\u003ehttps://api.revopush.org\u003c/string\u003e\n```\n\nAn example for `myAmazingApp_ios` app and `Staging` deployment:\n\n```xml\n\u003ckey\u003eCodePushDeploymentKey\u003c/key\u003e\n\u003cstring\u003evUOFPtZfOlhXHPEDE3nkf7nP6lJ4VJHvdy5W-g\u003c/string\u003e\n\u003ckey\u003eCodePushServerURL\u003c/key\u003e\n\u003cstring\u003ehttps://api.revopush.org\u003c/string\u003e\n```\n\n2. **Dynamic Deployment Key (Optional):** To switch deployments dynamically in your JavaScript code, use [Code-Push options](https://github.com/microsoft/react-native-code-push/blob/master/docs/api-js.md#CodePushOptions)\n\n### 5.2 Android Configuration\n\n1. Open `strings.xml`: Add the following entries:\n\n```xml\n\u003cstring moduleConfig=\"true\" name=\"CodePushDeploymentKey\"\u003eYour_Deployment_Key\u003c/string\u003e\n\u003cstring moduleConfig=\"true\" name=\"CodePushServerUrl\"\u003ehttps://api.revopush.org\u003c/string\u003e\n```\n\nAn example `myAmazingApp_android` app and `Staging` deployment `strings.xml`:\n\n```xml\n\u003cstring moduleConfig=\"true\" name=\"CodePushDeploymentKey\"\u003ekbAXqSrgEfLPcuvU3Fe0SCqX5HpOVJHvdy5W-g\u003c/string\u003e\n\u003cstring moduleConfig=\"true\" name=\"CodePushServerUrl\"\u003ehttps://api.revopush.org\u003c/string\u003e\n```\n\n2.  **Dynamic Deployment Key (Optional):** To switch deployments dynamically in your JavaScript code, use [Code-Push options](https://github.com/microsoft/react-native-code-push/blob/master/docs/api-js.md#CodePushOptions)\n\n## 6. Releasing Updates\n\nOnce your app is configured, you can release updates to your users.\n\n### 6.1 For iOS\n\n```shell\nrevopush release-react rn2_ios ios -d Staging\n```\n\n**What Happens:**\n- Bundles your JavaScript code.\n- Uploads the bundle and assets to Revopush.\n- Releases the update to the Staging deployment of rn2_ios.\n\n**Success Message:**\n\n```shell\n...\nSuccessfully released an update containing the \"/var/folders/my/lwrczz7503g5911_wf51jsvm0000gp/T/CodePush\" directory to the \"Staging\" deployment of the \"rn2_ios\" app.\n```\n\n### 6.2 For Android\n\n```shell\nrevopush release-react rn2_android android -d appcenter-Staging\n```\n\n**What Happens:**\n\n- Bundles your JavaScript code.\n- Uploads the bundle and assets to Revopush.\n- Releases the update to the appcenter-Staging deployment of rn2_android.\n\n**Success Message:**\n\n```shell\n...\nSuccessfully released an update containing the \"/var/folders/my/lwrczz7503g5911_wf51jsvm0000gp/T/CodePush\" directory to the \"appcenter-Staging\" deployment of the \"rn2_android\" app.\n```\n\n### 6.3 Additional Options\n\nFor more customization, view all options:\n\n```shell\nrevopush release-react -h\n```\n\n## 7. Summary and Resources\n\n\nMigrating your OTA updates from Appcenter to Revopush is straightforward with our CLI tools. \nWhether you're migrating existing applications or setting up new ones,\nRevopush offers a seamless experience with familiar commands and robust features.\n\n\n**Quick Command Reference:**\n\n| Appcenter                        | Revopush                |                                                                     Comment                                                                      | \n|:---------------------------------|:------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------:|\n| `appcenter login`                 | `revopush login`         |                                                                      Log in                                                                      |\n| `appcenter codepush deployment`   | `revopush deployment`    |                                                       View and manage your app deployments                                                       |\n| `appcenter apps`                  | `revopush app`           |                                                            View and manage your apps                                                             |\n| `appcenter codepush patch`        | `revopush patch`         |                                               Update the metadata for an existing CodePush release                                               |\n| `appcenter codepush promote`      | `revopush promote`       | Create a new release for the destination deployment, which includes the exact code and metadata from the latest release of the source deployment |\n| `appcenter codepush release-react`| `revopush release-react` |                                                Release a React Native update to an app deployment                                                |\n| `appcenter codepush rollback`    | `revopush rollback`       |                                                   Rollback a deployment to a previous release                                                    |\n| `appcenter logout`               | `revopush logout`         |                                                                     Log out                                                                      |\n\n### **Helpful Resources:**\n- React Native CodePush [GitHub](https://github.com/microsoft/react-native-code-push)\n- React Native Client SDK [docs](https://learn.microsoft.com/en-us/appcenter/distribution/codepush/rn-overview)\n- Best practices for [Multi-Deployment Testing](https://learn.microsoft.com/en-us/appcenter/distribution/codepush/rn-deployment)\n\n**Need More Help?**\nContact our support team at [support@revopush.org](mailto:support@revopush.org) or visit our [website](https://revopush.org).\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frevopush%2Fcode-push-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frevopush%2Fcode-push-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frevopush%2Fcode-push-cli/lists"}