Skip to content

Quickstart

This guide takes you from nothing to an update running in your app. You need Node.js 22 or later and a React Native 0.76+ app that you can build and run.

Terminal window
npm install -g @aetherpush/cli
Terminal window
aether register

The command asks for your email, a name, and a password, then sends you a verification email. Click the link in that email, then log in:

Terminal window
aether login
Terminal window
aether app add MyApp

Aether creates the app with two deployments, Staging and Production. Print their keys:

Terminal window
aether deployment ls MyApp -k

Copy the Staging key. Your app binary will carry it in the next step.

Terminal window
npm install @aetherpush/react-native-code-push

On iOS, set platform :ios, '15.5' in your Podfile and run pod install.

Add the Staging deployment key to the native configuration. On iOS, in Info.plist:

<key>CodePushDeploymentKey</key>
<string>YOUR_STAGING_KEY</string>

On Android, in strings.xml:

<string moduleConfig="true" name="CodePushDeploymentKey">YOUR_STAGING_KEY</string>

Wrap your root component:

import CodePush from "@aetherpush/react-native-code-push";
function App() {
return null;
}
export default CodePush(App);

The SDK also needs small changes to AppDelegate and MainApplication. Follow the platform guides that ship with the package, docs/setup-ios.md and docs/setup-android.md, before you build.

If you use Expo, install @aetherpush/expo-code-push-plugin instead of editing native files by hand. The plugin applies these changes during expo prebuild.

Build the app in release mode and run it once on a device or simulator. This installs a binary that carries your Staging deployment key.

Change something visible in your JavaScript code, then release it:

Terminal window
aether release-react MyApp ios

Use android for an Android build. The command bundles your app, reads the target binary version from your project, and releases to Staging.

Close and reopen the app. With the default settings, the SDK checks for an update on every start and downloads it in the background. Restart the app once more and your change is live.

  • Release to part of your audience first: aether release-react MyApp ios -r 25, then raise it with aether patch MyApp Staging -r 50.
  • Move a release to Production: aether promote MyApp Staging Production.
  • Undo a bad release: aether rollback MyApp Production.
  • Ship from CI instead of your laptop: see the CI/CD section.