DeployPulse

Compatibility

Everything DeployPulse does and does not work with, in one place. If you only read one table, read Your project setup.

Your project setup

SetupNotesStatus
Bare React NativeiOS and Android projectsSupported
Expo prebuild / CNGConfig plugin runs during expo prebuildSupported
EAS BuildFor development and release binariesSupported
Expo GoDevelopment sandbox, not a distribution channelNot applicable

Why Expo Go is "not applicable" rather than "not supported"

Expo Go is a fixed app published by Expo, so you cannot add the native module the CodePush SDK needs. Expo disables most of the Updates API there too, and updates published with a runtimeVersion cannot be loaded in Expo Go — which is exactly what our manifest endpoint serves.

This is not a DeployPulse limitation. No OTA provider works in Expo Go, including Expo's own EAS Update. Expo Go is for development; you ship to users from a development build or a release build, and OTA updates apply there. Use expo-dev-client and the answer becomes Supported.

OTA protocol

ProtocolHow you point it at DeployPulseStatus
@code-push-next/react-native-code-pushCodePushServerURL / CodePushServerUrlSupported
expo-updates (Expo Updates v1)updates.url in app.jsonSupported
EAS UpdateReplaced by DeployPulse, not used alongside itNot applicable
Both SDKs in one binaryPick one OTA runtime per appNot supported

The last row is a property of React Native, not of DeployPulse: two update runtimes both trying to own the JS bundle at launch will fight. One app, one OTA runtime. You can absolutely run a CodePush app and an Expo Updates app side by side in the same account.

For the Expo Updates path, point updates.url at your deployment's manifest endpoint:

{
  "expo": {
    "updates": {
      "url": "https://apps.deploypulse.io/expo/v1/YOUR_DEPLOYMENT_KEY/manifest"
    },
    "runtimeVersion": { "policy": "appVersion" }
  }
}

Create the app with dpctl app add MyApp --platform expo-v1 and publish with dpctl release-expo-v1. See Expo Setup for the CodePush path and Code Signing for signing either one.

React Native versions

The SDK version below is @code-push-next/react-native-code-push.

React NativeSDK versionArchitecture
< 0.76Use react-native-code-push (Microsoft)Old only
0.76 – 0.7910.0+Old + New
0.8010.1+Old + New
0.8110.3+Old + New
0.82+10.4+New only

React Native 0.76 enabled the New Architecture by default, and Microsoft's original react-native-code-push does not support it. The maintained fork supports both. See New Architecture for what that means in practice.

iOS minimum deployment target: 15.1

Expo SDK versions

Expo SDKCodePush config plugin
52+Supported
< 52Not supported

The SDK 52+ floor is a requirement of the config plugin, which needs React Native 0.76+. The expo-updates path has no Expo SDK floor of its own: it requires only that your client speaks Expo Updates protocol version 1, which our manifest endpoint enforces.

Platforms

PlatformStatus
iOSSupported
AndroidSupported
React Native for Web, Windows, macOSNot supported

Still not sure?

If your setup is not on this page, get in touch and we will tell you plainly whether it works. We would rather say no early than have you find out after integrating.