# microsoft/react-native-code-push

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/microsoft-react-native-code-push).**

9,133 stars · 1,588 forks · C · NOASSERTION · archived

## Links

- GitHub: https://github.com/Microsoft/react-native-code-push
- Homepage: http://appcenter.ms
- awesome-repositories: https://awesome-repositories.com/repository/microsoft-react-native-code-push.md

## Description

This project is a dynamic code delivery system and over-the-air update client for cross-platform mobile frameworks. It enables the distribution of JavaScript bundles and remote assets directly to devices, allowing updates to be applied without requiring a full application store release.

The system provides infrastructure for staged rollouts, A/B testing, and remote hotfix deployment by directing specific user segments or percentages to different code versions. It ensures stability through a client-side rollback manager that automatically reverts to a previous stable version if a new update causes the application to crash.

Additional capabilities include cryptographic public key signature verification to ensure bundle integrity and a deferred restart queue to prevent updates from interrupting critical user workflows. The project also provides tools for release metrics tracking, application health diagnosis, and the management of deployment keys across different environment channels.

## Tags

### Mobile Development

- [Over-the-Air Updates](https://awesome-repositories.com/f/mobile-development/distribution-updates/over-the-air-updates.md) — Delivers JavaScript bundles and assets directly to mobile devices to bypass app store review processes.
- [Bundle Path Resolution](https://awesome-repositories.com/f/mobile-development/bundle-path-resolution.md) — Determines the active code location by prioritizing downloaded updates over the embedded binary bundle.
- [Cross-Platform Frameworks](https://awesome-repositories.com/f/mobile-development/cross-platform-frameworks.md) — Provides native integration for cross-platform mobile frameworks to manage remote code synchronization.
- [Bundle Path Resolution](https://awesome-repositories.com/f/mobile-development/distribution-updates/over-the-air-updates/bundle-path-resolution.md) — Determines the correct JavaScript bundle location by prioritizing the latest over-the-air update over the embedded binary version. ([source](https://github.com/microsoft/react-native-code-push/blob/master/docs/api-android.md))
- [Asset Synchronization](https://awesome-repositories.com/f/mobile-development/over-the-air-update-systems/asset-synchronization.md) — Provides a system to refresh referenced images and videos within the application using a standard asset requirement system. ([source](https://github.com/microsoft/react-native-code-push/blob/master/README.md))
- [Success Verifications](https://awesome-repositories.com/f/mobile-development/distribution-updates/over-the-air-updates/success-verifications.md) — Signals the runtime that a new update started successfully to prevent an automatic rollback to the previous stable version. ([source](https://github.com/microsoft/react-native-code-push/blob/master/docs/api-js.md))

### Part of an Awesome List

- [Remote Bundle Synchronization](https://awesome-repositories.com/f/awesome-lists/devtools/assets-and-bundling/remote-bundle-synchronization.md) — Downloads and installs new JavaScript bundles and image assets using configurable silent or interactive update modes. ([source](https://github.com/microsoft/react-native-code-push/blob/master/docs/api-js.md))
- [Dynamic Code Delivery Systems](https://awesome-repositories.com/f/awesome-lists/devtools/electron-integrations/dynamic-code-delivery-systems.md) — Pushes code updates to specific user segments or percentages to perform staged rollouts and A/B testing.
- [Segmented Update Delivery](https://awesome-repositories.com/f/awesome-lists/devtools/electron-integrations/update-delivery-systems/segmented-update-delivery.md) — Delivers specific code updates to different user demographics based on targeted criteria. ([source](http://microsoft.github.io/code-push/))
- [Development Tools](https://awesome-repositories.com/f/awesome-lists/devtools/development-tools.md) — Plugin for over-the-air application updates.

### Development Tools & Productivity

- [Bundle Distribution Tooling](https://awesome-repositories.com/f/development-tools-productivity/bundle-distribution-tooling.md) — Packages JavaScript and asset files and uploads them to a distribution server via a command-line interface. ([source](https://github.com/microsoft/react-native-code-push#readme))
- [Update Managers](https://awesome-repositories.com/f/development-tools-productivity/update-managers.md) — Provides utilities to control update check intervals, download behavior, and application restart policies. ([source](https://github.com/microsoft/react-native-code-push#readme))
- [Background Update Execution](https://awesome-repositories.com/f/development-tools-productivity/client-update-utilities/runtime-logic-hot-updates/background-update-execution.md) — Restarts application logic when the runtime launches without a visible activity during native push notification events. ([source](https://github.com/microsoft/react-native-code-push/blob/master/docs/setup-android.md))
- [Remote Asset Deployment](https://awesome-repositories.com/f/development-tools-productivity/dependency-bundling/storage-bundle-execution/remote-application-bundles/remote-asset-deployment.md) — Updates application images and videos remotely while maintaining bundle integrity via digital signatures.
- [Binary Interface Overrides](https://awesome-repositories.com/f/development-tools-productivity/versioned-package-managers/version-overrides/binary-interface-overrides.md) — Allows manual definition of the binary interface version to control which updates are compatible with the installation. ([source](https://github.com/microsoft/react-native-code-push/blob/master/docs/api-android.md))

### DevOps & Infrastructure

- [Deployment Key Mappings](https://awesome-repositories.com/f/devops-infrastructure/deployment-key-mappings.md) — Maps build configurations to unique deployment keys to synchronize applications with distinct update channels based on the target. ([source](https://github.com/microsoft/react-native-code-push/blob/master/docs/multi-deployment-testing-ios.md))
- [Dynamic User Targeting](https://awesome-repositories.com/f/devops-infrastructure/deployment-management/deployment-configuration/dynamic-user-targeting.md) — Redirects specific users or groups to different deployment keys at runtime to enable A/B testing or early access. ([source](https://github.com/microsoft/react-native-code-push/blob/master/README.md))
- [Automated Rollout Managers](https://awesome-repositories.com/f/devops-infrastructure/deployment-management/deployment-lifecycle-controls/automated-rollout-managers.md) — Distributes updates to a specific percentage of the user base to validate stability before a full release. ([source](https://github.com/microsoft/react-native-code-push#readme))
- [Remote Hotfix Delivery](https://awesome-repositories.com/f/devops-infrastructure/deployment-management/installation-package-management/binary-and-source-installation/remote-binary-updaters/remote-hotfix-delivery.md) — Rapidly delivers critical bug fixes to production mobile users without requiring a full binary update.
- [Custom Update Server Configurators](https://awesome-repositories.com/f/devops-infrastructure/custom-update-server-configurators.md) — Allows specifying a custom server URL to redirect update requests away from the default hosting provider. ([source](https://github.com/microsoft/react-native-code-push/blob/master/docs/api-android.md))
- [Deterministic Rollout Strategies](https://awesome-repositories.com/f/devops-infrastructure/deployment-management/deployment-lifecycle-controls/automated-rollout-managers/deterministic-rollout-strategies.md) — Distributes updates to a specific percentage of the user base to validate stability before full release.
- [Release Tracking](https://awesome-repositories.com/f/devops-infrastructure/release-tracking.md) — Monitors update adoption, install rates, and rollback frequency to analyze the impact of code changes. ([source](http://microsoft.github.io/code-push/))
- [Manual App Restarts](https://awesome-repositories.com/f/devops-infrastructure/restart-automation/manual-app-restarts.md) — Forces the application to restart immediately, with an option to restrict the action to pending updates only. ([source](https://github.com/microsoft/react-native-code-push/blob/master/docs/api-js.md))
- [Restart Deferral Queues](https://awesome-repositories.com/f/devops-infrastructure/restart-automation/restart-deferral-queues.md) — Blocks programmatic restarts during critical user workflows and queues them to execute once a safe state is reached. ([source](https://github.com/microsoft/react-native-code-push/blob/master/docs/api-js.md))
- [Restart Deferral Queues](https://awesome-repositories.com/f/devops-infrastructure/restart-deferral-queues.md) — Blocks application restarts during critical user workflows and executes them once a safe state is reached.
- [Release Channel Promotions](https://awesome-repositories.com/f/devops-infrastructure/version-upgrades/artifact-versioning/promotion-constraints/release-channel-promotions.md) — Supports promoting tested updates from staging deployments to production channels to ensure stability. ([source](https://github.com/microsoft/react-native-code-push/blob/master/README.md))

### Security & Cryptography

- [Signature Verification Tools](https://awesome-repositories.com/f/security-cryptography/signature-verification-tools.md) — Uses cryptographic public key signatures to validate the authenticity and integrity of downloaded bundles.
- [Bundle Integrity Verifications](https://awesome-repositories.com/f/security-cryptography/bundle-integrity-verifications.md) — Implements public key signature verification to ensure downloaded app bundles are authentic and untampered. ([source](https://github.com/microsoft/react-native-code-push/blob/master/docs/api-android.md))

### Software Engineering & Architecture

- [Mobile Version Managers](https://awesome-repositories.com/f/software-engineering-architecture/application-state-versioning/mobile-version-managers.md) — Controls which application versions users run through a system of deployment keys and environment channels.
- [Client-Side Rollbacks](https://awesome-repositories.com/f/software-engineering-architecture/plugin-version-management/client-side-rollbacks.md) — A manager that monitors app stability and automatically reverts to previous stable versions after a crash.
- [Update Application Timing](https://awesome-repositories.com/f/software-engineering-architecture/reactive-update-scheduling/update-cycle-controllers/update-application-timing.md) — Controls when an update is applied by choosing to restart immediately, upon resume, or during the next natural restart. ([source](https://github.com/microsoft/react-native-code-push/blob/master/docs/api-js.md))

### Web Development

- [Deployment Rollbacks](https://awesome-repositories.com/f/web-development/application-deployment/deployment-rollbacks.md) — Implements a client-side mechanism to automatically revert to a previous stable version if an update causes crashes.
- [Asset Synchronizers](https://awesome-repositories.com/f/web-development/web-infrastructure-deployment/asset-management-build-tools/asset-lifecycle-orchestration/asset-pipelines/asset-synchronizers.md) — Provides automated synchronization of images and video assets to match the active JavaScript bundle version.

### Business & Productivity Software

- [A/B Testing](https://awesome-repositories.com/f/business-productivity-software/a-b-testing.md) — Directs specific user groups to different code bundles at runtime to perform A/B testing and feature experimentation.
