Skip to main content

Your First Update

Deploy a live OTA update to your React Native app, see it in the dashboard, and verify it on a real device -- all without touching the App Store or Google Play.

Prerequisites
  • SwiftPatch SDK installed and configured (Quick Start)
  • A release build running on a device or simulator
  • SwiftPatch CLI installed and authenticated:
npm install -g @swiftpatch/cli
swiftpatch login

Step 1: Make a Visible Change

Edit something you can see on screen:

src/screens/HomeScreen.tsx
function HomeScreen() {
return (
<View style={styles.container}>
<Text style={styles.heading}>Hello from SwiftPatch!</Text>
<Text style={styles.subtitle}>This update was delivered over the air.</Text>
</View>
);
}
Keep it small

A single text change is ideal for your first update. Confirm the pipeline works before shipping bigger changes.


Step 2: Deploy

iOS:

swiftpatch deploy -p ios --hermes -n "First OTA update - updated welcome message"

Android:

swiftpatch deploy -p android --hermes -n "First OTA update - updated welcome message"
Always use --hermes for Hermes apps

React Native 0.70+ enables Hermes by default. Deploying without --hermes causes a crash loop.

The CLI bundles your JavaScript, compiles to Hermes bytecode, and uploads it. You'll see output like:

✔ Bundle created (1.2 MB)
✔ Hermes bytecode compiled
✔ Uploaded to SwiftPatch
✔ Release v1.0.0-1 is now live

Step 3: Check the Dashboard

Open the dashboard and go to your project's Releases tab. Your release shows its status, version, and adoption percentage.

Version matching

SwiftPatch matches releases to devices using an exact match on the native binary version. If your release targets 1.0.0, only devices running 1.0.0 receive it.


Step 4: Verify on Your Device

  1. Open the app -- this triggers the update check and download.
  2. Background and reopen, or force-quit and relaunch.
  3. Your updated text should appear.
Faster feedback

Call SwiftPatch.checkForUpdate() in your code to trigger an immediate check. See the SDK Reference.


Step 5: Check Analytics

In the dashboard, go to Analytics. You'll see adoption rate, download success rate, and rollback events within minutes.


Troubleshooting

SymptomFix
Old content after relaunchEnsure you're on a release build. Debug builds ignore OTA updates.
0% adoptionVerify SwiftPatchAppId matches your dashboard App ID.
Device not targetedCheck that --app-version matches your native binary version exactly.
App crashes after updateRedeploy with --hermes. The SDK auto-rolls back after 2 crashes within 10 seconds.
Slow downloadsThe first update downloads the full bundle. Subsequent updates use smaller differential patches.

What You Did

You made a code change, deployed it with one CLI command, confirmed it in the dashboard, and watched it arrive on your device. Every future update follows this same pattern.

Next Steps