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.
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
- Only update JavaScript — Never try to modify native code via OTA
- Don't change primary purpose — A calculator app shouldn't become a game
- Be transparent — Don't disguise updates as something else
- 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.
Ready to ship updates faster?
Get started with SwiftPatch for free. No credit card required.
Join WaitlistRelated Articles
Expo EAS Update Pricing: Cost, Bandwidth & What It Really Costs at Scale
Expo EAS Update feels cheap when you're starting out. Then your app grows. Here's how Expo actually bills for EAS Update, why costs grow faster than you expect, and what happens when you're shipping frequent releases to real users.
ComparisonExpo EAS Update Alternative — Best Expo Updates Replacement with Patch Updates
Expo EAS Update works well inside the Expo ecosystem. But as apps scale, teams need patch updates, rollback, internal testing, bare React Native support, and on-premise hosting. Here's how SwiftPatch compares.
GuidePatch Updates: The Modern CodePush Alternative
Microsoft CodePush is deprecated. Learn how to migrate to SwiftPatch, the modern OTA update platform for React Native with 98% smaller patches, automatic rollback, and enterprise security.