Guide

How to Deploy React Native Updates Without App Store Review

Learn how to bypass App Store and Google Play review for React Native updates. Ship bug fixes and features instantly with OTA updates while staying compliant.

S
SwiftPatch Team
Engineering
10 min read

The App Store Review Problem

Every React Native developer has experienced it: you find a critical bug in production, fix it in 5 minutes, but then wait 1-3 days for App Store review. Meanwhile, your users suffer.

The timeline without OTA:

Bug reported       → Day 0
Fix written        → Day 0 (5 minutes)
App Store review   → Day 1-3
Update available   → Day 3-5
Users update       → Day 5-14

The timeline with OTA:

Bug reported       → 0:00
Fix written        → 0:05
OTA deployed       → 0:06
Users updated      → 0:07

How It Works

React Native apps run JavaScript code that's loaded from a bundle file. Normally, this bundle is packaged inside the app binary. With OTA updates, you can replace this bundle at runtime without going through the app store.

The Technical Flow

// 1. App starts
// 2. SwiftPatch checks for updates
// 3. If update available:
//    - Downloads differential patch (typically < 200KB)
//    - Verifies cryptographic signature
//    - Applies patch to current bundle
//    - Restarts JavaScript runtime
// 4. User sees updated app

Setting Up OTA Updates

Step 1: Install SwiftPatch

npm install swiftpatch
cd ios && pod install

Step 2: Configure Your App

// App.tsx
import { SwiftPatch } from 'swiftpatch';

SwiftPatch.init({
  deploymentKey: 'YOUR_DEPLOYMENT_KEY',
  autoRollback: true,
});

Step 3: Deploy an Update

Make your code change, then:

swiftpatch release --platform ios --description "Fix: Login button crash"

Done. Users will receive the update within seconds.

What Can You Update?

Yes — JavaScript & Assets

No — Native Code

App Store Compliance

This is the question everyone asks: is this allowed?

Apple's Guidelines

Apple's App Store Review Guideline 3.3.2 explicitly allows:

> "Interpreted code may be downloaded to an Application but only so long as such code: (a) does not change the primary purpose of the Application by providing features or functionality that are inconsistent with the intended and advertised purpose of the Application."

React Native OTA updates are JavaScript-only, which falls under "interpreted code."

Google Play Policies

Google Play's policy on code downloaded off-device:

> "An app distributed via Google Play may not modify, replace, or update itself using any method other than Google Play's update mechanism. However, an app may download executable code (such as JavaScript) that is executed in a sandboxed environment."

React Native's JavaScript runs in a sandboxed environment (JavaScriptCore or Hermes), so this is compliant.

Best Practices for Compliance

  1. Only update JavaScript — Never try to modify native code via OTA
  2. Don't change primary purpose — A calculator app shouldn't become a game
  3. Be transparent — Don't disguise updates as something else
  4. Keep it reasonable — Bug fixes and incremental features, not full app rewrites

CI/CD Integration

Automate deployments with your existing pipeline:

GitHub Actions

name: Deploy OTA Update
on:
  push:
    branches: [main]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: npm ci
      - run: npm run build
      - run: npx swiftpatch release --platform all
        env:
          SWIFTPATCH_ACCESS_KEY: ${{ secrets.SWIFTPATCH_ACCESS_KEY }}

With Staged Rollout

# Deploy to 5% of users first
swiftpatch release --platform all --rollout 5

# Monitor for 1 hour, then expand
swiftpatch promote --rollout 100

Real-World Use Cases

1. Emergency Bug Fix

2. A/B Testing

3. Feature Flags

4. Content Updates

5. Regulatory Compliance

Common Concerns

"What if the update breaks the app?"

SwiftPatch includes automatic rollback. If a crash is detected after an update, it rolls back to the previous version in under 3 seconds.

"Will users notice the update?"

Updates are applied seamlessly. Users don't need to download anything from the app store.

"What about security?"

SwiftPatch uses cryptographic bundle signing. Every update is verified before being applied.

Conclusion

You don't need to wait for app store review to fix bugs or ship features. OTA updates give you the speed of web deployment with the power of native apps.

Start deploying without the wait →

Ready to ship updates faster?

Get started with SwiftPatch for free. No credit card required.

Join Waitlist

Related Articles