How the concepts map
- CodePush app → AeroPush project
- Deployment key → AeroPush app key
- Staging / Production deployments → AeroPush channels
codePush()HOC /sync()→ AeroPush SDKinit()+sync()
1. Create your AeroPush project
Sign up free, create a project, add your iOS bundle ID and Android package, and generate an app key. Keep the key handy for the next steps.
2. Swap the package
npm uninstall react-native-code-push
npm install react-native-aeropush
cd ios && pod install && cd ..3. Replace the SDK calls
Remove the CodePush wrapper and initialise AeroPush at module scope instead:
// Before — CodePush
// import codePush from 'react-native-code-push';
// export default codePush(App);
// After — AeroPush
import AeroPush, { AeroPushBoundary, InstallMode } from 'react-native-aeropush';
AeroPush.init({ appKey: 'YOUR_APP_KEY', channel: 'production' });
AeroPush.sync({ installMode: InstallMode.ON_NEXT_RESTART });
export default function App() {
return (
<AeroPushBoundary>
<YourApp />
</AeroPushBoundary>
);
}4. Point the native bundle hook at AeroPush
Update the iOS bundleURL() and Android getJSBundleFile() hooks so release builds boot from the staged OTA bundle. The full native snippets are in the installation guide.
5. Publish your first update
export AEROPUSH_APP_KEY=apk_live_…
npx aeropush release --channel productionYour app picks up the new bundle on its next cold launch — exactly like CodePush, just faster and smaller.
What you gain
- 99% smaller updates via differential patches, with automatic full-bundle fallback.
- Native-fingerprint safety so an OTA update never lands on an incompatible binary.
- Automatic crash rollback and one-click manual rollback.
- The option to self-host — something hosted CodePush never offered.
Questions? Talk to us, or see why AeroPush is the best CodePush alternative.