Hot Code Push Implementation for React Native App (CodePush)

NOVASOLUTIONS.TECHNOLOGY is engaged in the development, support and maintenance of iOS, Android, PWA mobile applications. We have extensive experience and expertise in publishing mobile applications in popular markets like Google Play, App Store, Amazon, AppGallery and others.
Development and support of all types of mobile applications:
Information and entertainment mobile applications
News apps, games, reference guides, online catalogs, weather apps, fitness and health apps, travel apps, educational apps, social networks and messengers, quizzes, blogs and podcasts, forums, aggregators
E-commerce mobile applications
Online stores, B2B apps, marketplaces, online exchanges, cashback services, exchanges, dropshipping platforms, loyalty programs, food and goods delivery, payment systems.
Business process management mobile applications
CRM systems, ERP systems, project management, sales team tools, financial management, production management, logistics and delivery management, HR management, data monitoring systems
Electronic services mobile applications
Classified ads platforms, online schools, online cinemas, electronic service platforms, cashback platforms, video hosting, thematic portals, online booking and scheduling platforms, online trading platforms

These are just some of the types of mobile applications we work with, and each of them may have its own specific features and functionality, tailored to the specific needs and goals of the client.

Showing 1 of 1 servicesAll 1735 services
Hot Code Push Implementation for React Native App (CodePush)
Medium
~2-3 business days
FAQ
Our competencies:
Development stages
Latest works
  • image_mobile-applications_feedme_467_0.webp
    Development of a mobile application for FEEDME
    756
  • image_mobile-applications_xoomer_471_0.webp
    Development of a mobile application for XOOMER
    624
  • image_mobile-applications_rhl_428_0.webp
    Development of a mobile application for RHL
    1052
  • image_mobile-applications_zippy_411_0.webp
    Development of a mobile application for ZIPPY
    947
  • image_mobile-applications_affhome_429_0.webp
    Development of a mobile application for Affhome
    862
  • image_mobile-applications_flavors_409_0.webp
    Development of a mobile application for the FLAVORS company
    445

Implementing Hot Code Push for React Native Apps (CodePush)

App Store Review can take from several hours to several days. When there's a critical bug in JS logic — a typo in an API endpoint, incorrect calculation in cart — you need to deliver the fix immediately without waiting for review. CodePush (Microsoft AppCenter) solves this: JS bundle and resources update over the air, native code stays the same.

How CodePush Works

A React Native app consists of a native host (Objective-C/Swift / Java/Kotlin) and a JS bundle. CodePush replaces the JS bundle and resources (images/, fonts/) without updating the native part. Apple and Google allow this — as long as the update doesn't fundamentally change app behavior (you can't add new native permissions or change the business model through JS).

Integration

Installation:

npm install react-native-code-push
npx pod-install  # iOS

In AppDelegate.mm (iOS):

#import <CodePush/CodePush.h>

- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge {
  #if DEBUG
    return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index"];
  #else
    return [CodePush bundleURL];
  #endif
}

In the main component:

import CodePush from 'react-native-code-push';

const App = () => {
  // ... component
};

const codePushOptions = {
  checkFrequency: CodePush.CheckFrequency.ON_APP_RESUME,
  installMode: CodePush.InstallMode.ON_NEXT_RESUME,
  mandatoryInstallMode: CodePush.InstallMode.IMMEDIATE,
};

export default CodePush(codePushOptions)(App);

InstallMode.ON_NEXT_RESUME — update applies on next return from background. Doesn't interrupt the user. IMMEDIATE — only for critical mandatory updates.

Deployment via Fastlane

lane :codepush_staging do
  sh("appcenter codepush release-react \
    -a MyOrg/MyApp-iOS \
    -d Staging \
    --description '#{ENV["CHANGELOG"]}' \
    --target-binary-version '~1.2'")

  sh("appcenter codepush release-react \
    -a MyOrg/MyApp-Android \
    -d Staging \
    --description '#{ENV["CHANGELOG"]}' \
    --target-binary-version '~1.2'")
end

--target-binary-version '~1.2' — semver expression. Only users with native version 1.2.x get the update. This is important: if the new JS bundle uses a native module added in 1.3, you can't push it to 1.2 users.

Rollout Strategy

Don't roll out CodePush to 100% of users immediately. AppCenter supports --rollout:

appcenter codepush release-react \
  -a MyOrg/MyApp-iOS \
  -d Production \
  --rollout 10

10% of users get the update. After 30 minutes, check Firebase Crashlytics — if crash rate didn't increase, expand via AppCenter UI to 50% → 100%.

Limitations and What Doesn't Work

CodePush cannot update:

  • Native code (Swift/ObjC/Kotlin/Java)
  • Native dependencies (adding a new pod or aar)
  • AndroidManifest.xml and Info.plist
  • Splash screen and app icon

If a PR touches the native part — use standard release through the Store.

CodePush from Microsoft AppCenter is deprecated in favor of EAS Update (Expo). For non-Expo projects — consider migrating to a self-hosted CodePush server (code-push-server open source) for independence from AppCenter.

Monitoring Updates

AppCenter Deployments shows statistics: how many devices got the update, how many rolled back. Automatic rollback kicks in if the app crashes right after updating — CodePush returns the previous bundle.

Process

SDK integration → AppCenter app setup → Deployment environment configuration (Staging, Production) → Fastlane lanes → add to CI → test rollout on Staging → deploy process documentation.

Timeline: 2–3 days. Cost is calculated individually.