Skip to content

React Native OTA ClientSigned over-the-air updates for React Native

Update JavaScript and bundled assets on Android and iOS without shipping a new binary. The client verifies each release before it runs.

What OTA can update ​

OTA updates JavaScript and bundled assets. Native code, permissions and entitlements, React Native and Hermes versions, and Codegen contract changes require a new APK or IPA.

How it works ​

  1. The app checks the OTA server with its app ID, runtime version, channel, current version, installation ID, and last failed release ID when one exists.
  2. The client verifies the signed release manifest, the artifact size and hash, the archive contents, and the Hermes entrypoint.
  3. A verified release is staged under app-private storage.
  4. On the next cold start, the client selects the staged bundle. The release stays provisional until markUpdateSuccessful() confirms it is healthy. An unconfirmed release rolls back to the previous bundle or the embedded bundle.

Requirements ​

  • Android and iOS.
  • React Native 0.88.x, the New Architecture, and Hermes.
  • Android min SDK 24.
  • iOS New Architecture and Hermes. Use the deployment target supported by the host app's React Native version.
  • A host app with release signing and a public verification key.

Install ​

sh
npm install react-native-ota-client

React Native autolinking finds the native package on Android and iOS. Rebuild the native app after installation. Metro alone cannot add native code.

Next: installation guide and platform setup for Android and iOS.

Released under the MIT License.