Migrating from CodePush (App Center) or Revopush
Healkite speaks CodePush's language: the same JavaScript API and the same CLI verbs. Most apps migrate in an afternoon; your release scripts mostly just change the binary name.
1. Concepts
| CodePush | Healkite |
|---|---|
App (one per platform: MyApp-iOS, MyApp-Android) | One app for both platforms (MyApp-iOS still resolves) |
Deployment (Staging, Production) | Channel (staging, production) |
| Deployment key | Channel key (HealkiteChannel / healkite_channel) |
Target binary version (-t 1.0.0) | Runtime version (-r 1.0.0, defaults to the app version) |
Code signing (-k private.pem) | Code signing (--sign / -k), plus server-signed manifests |
Rollout -r 25 | Rollout, or a guarded release that advances and halts on its own |
2. Native setup
Remove react-native-code-push (its native code, CodePushDeploymentKey entries and the CodePush.bundleURL() /
getJSBundleFile overrides) and follow the Healkite SDK install: npm install @healkite/react-native, then the
native steps in the SDK README, or the Expo config plugin.
3. JavaScript: change one import
- import codePush from "react-native-code-push";
+ import codePush from "@healkite/react-native/codepush";codePush(options)(App), codePush.sync(), checkForUpdate(), getUpdateMetadata(), notifyAppReady(),
restartApp(), allowRestart() / disallowRestart(), InstallMode, CheckFrequency, SyncStatus and
UpdateState behave as before. Differences: no update dialog (Healkite installs silently and applies mandatory
updates immediately), and the deployment comes from the app config rather than per call.
4. CLI
npx healkite login --api-url https://api.healkite.com --token hk_…code-push / appcenter codepush | healkite codepush |
|---|---|
release-react MyApp ios -d Production -t 1.0.0 --des "…" -m -r 25 -k key.pem | same |
promote MyApp Staging Production | same (-p ios to pick a platform) |
rollback MyApp Production [--targetRelease v4] | same (--target-release) |
patch MyApp Production -l v7 -r 50 -m true -x false | same (add -p ios) |
deployment ls MyApp -k | deployment ls MyApp (shows channel keys) |
deployment history MyApp Production | same (add -p ios) |
Every Healkite command (healkite release --guarded, --at, --device, --experiment, --hotfix, size,
preview) is available on top.
5. Cut over
- Create the app and channels in Healkite (dashboard or
npx healkite apps create/channels create). - Ship a store build with the Healkite SDK and channel key.
- Point CI at
healkite codepush release-react(or the GitHub Action). - Keep CodePush running for older store builds until they age out; new builds only talk to Healkite.