{"id":4962,"date":"2023-05-05T10:35:58","date_gmt":"2023-05-05T10:35:58","guid":{"rendered":"https:\/\/prometteursolutions.com\/blog\/?p=4962"},"modified":"2025-10-16T04:58:24","modified_gmt":"2025-10-16T04:58:24","slug":"how-to-implement-microsoft-codepush-in-your-mobile-app-development-workflow","status":"publish","type":"post","link":"https:\/\/prometteursolutions.com\/blog\/how-to-implement-microsoft-codepush-in-your-mobile-app-development-workflow\/","title":{"rendered":"How to Implement Microsoft CodePush in Your Mobile App Development Workflow"},"content":{"rendered":"\r\n<p><strong>CODE PUSH\u00a0<\/strong><\/p>\r\n\r\n\r\n\r\n<p>A React Native app comprises of JavaScript files and any accompanying <a href=\"https:\/\/reactnative.dev\/docs\/image\">images<\/a>. However, the <a href=\"https:\/\/github.com\/facebook\/metro\">metro bundler<\/a> must bundle and distribute them as part of a platform-specific binary. That is a .ipa or .apk file.\u00a0<\/p>\r\n\r\n\r\n\r\n<p>Once the app gets launched, updating either the JavaScript code, which may include fixing bugs,\u00a0<\/p>\r\n\r\n\r\n\r\n<p>and adding of new features or image assets will require recompilation and redistribution of the entire binary, which includes any review time associated with the store(s) you are publishing to.<\/p>\r\n\r\n\r\n\r\n<p>There is a backup feature for quick and easy recovery in The CodePush plugin. It maintains a copy of the previous update to allow you to do an auto rollback in case of a crash during the update. The rollback feature is good for end users too, because it will allow them to have a functioning version. The rollback eliminates the need for downtime since you can quickly pull up a rollback.<\/p>\r\n\r\n\r\n\r\n<p>It is important to note that when your changes include modification of native codes like your AppDelegate.m\/MainActivity.java file, you cannot use the CodePush plugin for distribution unless through the stores.<\/p>\r\n\r\n\r\n\r\n<h1 class=\"wp-block-heading\"><strong>App Center Command Line Interface (CLI)<\/strong><\/h1>\r\n\r\n\r\n\r\n<p>The App Center command line interface (CLI) is a unified tool for running App Center services from the command line. Integrate app centre command by using the following command.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-table\">\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td>npm install -g appcenter-cli<\/td>\r\n<\/tr>\r\n<\/tbody>\r\n<\/table>\r\n<\/figure>\r\n\r\n\r\n\r\n<h4 class=\"wp-block-heading\"><a href=\"https:\/\/appcenter.ms\/signup?utm_source=CodePush&amp;utm_medium=Azure\">Sign up With App Center<\/a> to use CodePush<\/h4>\r\n\r\n\r\n\r\n<ol class=\"wp-block-list\">\r\n<li>Create Your project on App Center\u00a0<\/li>\r\n\r\n\r\n\r\n<li>Add your <strong>Project Name, Release Type, OS and Platform<\/strong><\/li>\r\n\r\n\r\n\r\n<li><strong>Create a code push deployment key for production and development<\/strong><\/li>\r\n<\/ol>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"561\" class=\"wp-image-4963\" src=\"https:\/\/prometteursolutions.com\/blog\/wp-content\/uploads\/2023\/05\/image-1024x561.png\" alt=\"\" srcset=\"https:\/\/prometteursolutions.com\/blog\/wp-content\/uploads\/2023\/05\/image-1024x561.png 1024w, https:\/\/prometteursolutions.com\/blog\/wp-content\/uploads\/2023\/05\/image-300x164.png 300w, https:\/\/prometteursolutions.com\/blog\/wp-content\/uploads\/2023\/05\/image-768x420.png 768w, https:\/\/prometteursolutions.com\/blog\/wp-content\/uploads\/2023\/05\/image-1536x841.png 1536w, https:\/\/prometteursolutions.com\/blog\/wp-content\/uploads\/2023\/05\/image-100x55.png 100w, https:\/\/prometteursolutions.com\/blog\/wp-content\/uploads\/2023\/05\/image-700x383.png 700w, https:\/\/prometteursolutions.com\/blog\/wp-content\/uploads\/2023\/05\/image.png 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"561\" class=\"wp-image-4965\" src=\"https:\/\/prometteursolutions.com\/blog\/wp-content\/uploads\/2023\/05\/image-2-1024x561.png\" alt=\"\" srcset=\"https:\/\/prometteursolutions.com\/blog\/wp-content\/uploads\/2023\/05\/image-2-1024x561.png 1024w, https:\/\/prometteursolutions.com\/blog\/wp-content\/uploads\/2023\/05\/image-2-300x164.png 300w, https:\/\/prometteursolutions.com\/blog\/wp-content\/uploads\/2023\/05\/image-2-768x420.png 768w, https:\/\/prometteursolutions.com\/blog\/wp-content\/uploads\/2023\/05\/image-2-1536x841.png 1536w, https:\/\/prometteursolutions.com\/blog\/wp-content\/uploads\/2023\/05\/image-2-100x55.png 100w, https:\/\/prometteursolutions.com\/blog\/wp-content\/uploads\/2023\/05\/image-2-700x383.png 700w, https:\/\/prometteursolutions.com\/blog\/wp-content\/uploads\/2023\/05\/image-2.png 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"559\" class=\"wp-image-4966\" src=\"https:\/\/prometteursolutions.com\/blog\/wp-content\/uploads\/2023\/05\/image-3-1024x559.png\" alt=\"\" srcset=\"https:\/\/prometteursolutions.com\/blog\/wp-content\/uploads\/2023\/05\/image-3-1024x559.png 1024w, https:\/\/prometteursolutions.com\/blog\/wp-content\/uploads\/2023\/05\/image-3-300x164.png 300w, https:\/\/prometteursolutions.com\/blog\/wp-content\/uploads\/2023\/05\/image-3-768x419.png 768w, https:\/\/prometteursolutions.com\/blog\/wp-content\/uploads\/2023\/05\/image-3-1536x838.png 1536w, https:\/\/prometteursolutions.com\/blog\/wp-content\/uploads\/2023\/05\/image-3-100x55.png 100w, https:\/\/prometteursolutions.com\/blog\/wp-content\/uploads\/2023\/05\/image-3-700x382.png 700w, https:\/\/prometteursolutions.com\/blog\/wp-content\/uploads\/2023\/05\/image-3.png 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\r\n\r\n\r\n\r\n<p>Integrate App Center by using the following command<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-table\">\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td>npm install appcenter appcenter-analytics appcenter-crashes &#8211;save-exact<\/td>\r\n<\/tr>\r\n<\/tbody>\r\n<\/table>\r\n<\/figure>\r\n\r\n\r\n\r\n<p><strong>Android<\/strong> &#8211; Create a new file with the filename appcenter-config.json in android\/app\/src\/main\/assets\/ with the following content:<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-table\">\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td>{\u00a0\u00a0&#8220;app_secret&#8221;: &#8220;{Your app secret here}&#8221;}<\/td>\r\n<\/tr>\r\n<\/tbody>\r\n<\/table>\r\n<\/figure>\r\n\r\n\r\n\r\n<p><strong>Modify the app&#8217;s res\/values\/strings.xml to include the following lines:<\/strong><\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-table\">\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td><strong>&lt;string <\/strong><strong>name<\/strong><strong>=<\/strong><strong>&#8220;appCenterCrashes_whenToSendCrashes&#8221;<\/strong> <strong>moduleConfig<\/strong><strong>=<\/strong><strong>&#8220;true&#8221;<\/strong> <strong>translatable<\/strong><strong>=<\/strong><strong>&#8220;false&#8221;<\/strong><strong>&gt;DO_NOT_ASK_JAVASCRIPT&lt;\/string&gt;<\/strong><strong>&lt;string <\/strong><strong>name<\/strong><strong>=<\/strong><strong>&#8220;appCenterAnalytics_whenToEnableAnalytics&#8221;<\/strong> <strong>moduleConfig<\/strong><strong>=<\/strong><strong>&#8220;true&#8221;<\/strong> <strong>translatable<\/strong><strong>=<\/strong><strong>&#8220;false&#8221;<\/strong><strong>&gt;ALWAYS_SEND&lt;\/string&gt;<\/strong><\/td>\r\n<\/tr>\r\n<\/tbody>\r\n<\/table>\r\n<\/figure>\r\n\r\n\r\n\r\n<p>Add CodePushDeploymentKey into the strings.xml file. Your string.xml look like this<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-table\">\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td>&lt;resources&gt;\u00a0\u00a0\u00a0\u00a0\u00a0&lt;string name=&#8221;app_name&#8221;&gt;AppName&lt;\/string&gt;\u00a0\u00a0\u00a0\u00a0\u00a0&lt;string moduleConfig=&#8221;true&#8221; name=&#8221;CodePushDeploymentKey&#8221;&gt;DeploymentKey&lt;\/string&gt;\u00a0&lt;\/resources&gt;<\/td>\r\n<\/tr>\r\n<\/tbody>\r\n<\/table>\r\n<\/figure>\r\n\r\n\r\n\r\n<p><strong>iOS<\/strong> &#8211;<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-table\">\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td>pod install &#8211;repo-update<\/td>\r\n<\/tr>\r\n<\/tbody>\r\n<\/table>\r\n<\/figure>\r\n\r\n\r\n\r\n<p>Modify the app&#8217;s AppDelegate.m or AppDelegate.mm file to include code for starting SDK.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-table\">\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td>#import &lt;AppCenterReactNative.h&gt;#import &lt;AppCenterReactNativeAnalytics.h&gt;#import &lt;AppCenterReactNativeCrashes.h&gt;<\/td>\r\n<\/tr>\r\n<\/tbody>\r\n<\/table>\r\n<\/figure>\r\n\r\n\r\n\r\n<p>Add these to the application:didFinishLaunchingWithOptions: method:<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-table\">\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td>[AppCenterReactNative register];[AppCenterReactNativeAnalytics registerWithInitiallyEnabled:true];[AppCenterReactNativeCrashes registerWithAutomaticProcessing];<\/td>\r\n<\/tr>\r\n<\/tbody>\r\n<\/table>\r\n<\/figure>\r\n\r\n\r\n\r\n<p>Create a new file with the filename AppCenter-Config.plist in ios\/ with the following content:<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-table\">\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td><strong>&lt;?<\/strong><strong>xml version=<\/strong><strong>&#8220;1.0&#8221;<\/strong><strong> encoding=<\/strong><strong>&#8220;UTF-8&#8221;<\/strong><strong>?&gt;<\/strong><strong>&lt;!DOCTYPE plist PUBLIC &#8220;-\/\/Apple\/\/DTD PLIST 1.0\/\/EN&#8221; &#8220;http:\/\/www.apple.com\/DTDs\/PropertyList-1.0.dtd&#8221;&gt;<\/strong><strong>&lt;plist version=<\/strong><strong>&#8220;1.0&#8221;<\/strong><strong>&gt;<\/strong><strong>&lt;dict&gt;<\/strong> <strong>&lt;key&gt;<\/strong><strong>AppSecret<\/strong><strong>&lt;\/key&gt;<\/strong> <strong>&lt;string&gt;<\/strong><strong>{Your app secret here}<\/strong><strong>&lt;\/string&gt;<\/strong><strong>&lt;\/dict&gt;<\/strong><strong>&lt;\/plist&gt;<\/strong><\/td>\r\n<\/tr>\r\n<\/tbody>\r\n<\/table>\r\n<\/figure>\r\n\r\n\r\n\r\n<p>Add CodePushDeploymentKey into the info.plist file. You can find that key on App Center -&gt; Distribution -&gt; Setting -&gt;\u00a0 Production and Staging key<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-table\">\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td><strong>&lt;key&gt;<\/strong><strong>CodePushDeploymentKey<\/strong><strong>&lt;\/key&gt;<\/strong><strong>&lt;string&gt;<\/strong><strong>{your app deployment key}<\/strong><strong>&lt;\/string&gt;<\/strong><\/td>\r\n<\/tr>\r\n<\/tbody>\r\n<\/table>\r\n<\/figure>\r\n\r\n\r\n\r\n<p>By running the following command from\u00a0 your app&#8217;s root directory, you can start CodePush-ifying your React Native app :<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-table\">\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td>npm install &#8211;save react-native-code-push<\/td>\r\n<\/tr>\r\n<\/tbody>\r\n<\/table>\r\n<\/figure>\r\n\r\n\r\n\r\n<p>You can perform the following steps to integrate CodePush into your <strong>Android<\/strong> project<\/p>\r\n\r\n\r\n\r\n<p>Go to<\/p>\r\n\r\n\r\n\r\n<ol class=\"wp-block-list\">\r\n<li>\u00a0your android\/settings.gradle file, and make the following additions at the end of the file:<\/li>\r\n<\/ol>\r\n\r\n\r\n\r\n<figure class=\"wp-block-table\">\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td>include &#8216;:app&#8217;, &#8216;:react-native-code-push&#8217;project(&#8216;:react-native-code-push&#8217;).projectDir = new File(rootProject.projectDir, &#8216;..\/node_modules\/react-native-code-push\/android\/app&#8217;)<\/td>\r\n<\/tr>\r\n<\/tbody>\r\n<\/table>\r\n<\/figure>\r\n\r\n\r\n\r\n<ol class=\"wp-block-list\" start=\"2\">\r\n<li>In your android\/app\/build.gradle file, add the codepush.gradle file as an additional build task definition to the end of the file:<\/li>\r\n<\/ol>\r\n\r\n\r\n\r\n<figure class=\"wp-block-table\">\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td>apply from: &#8220;..\/..\/node_modules\/react-native-code-push\/android\/codepush.gradle&#8221;<\/td>\r\n<\/tr>\r\n<\/tbody>\r\n<\/table>\r\n<\/figure>\r\n\r\n\r\n\r\n<ol class=\"wp-block-list\" start=\"3\">\r\n<li>Update the MainApplication.java file to use CodePush via the following changes:<\/li>\r\n<\/ol>\r\n\r\n\r\n\r\n<figure class=\"wp-block-table\">\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td>&#8230;\/\/ 1. Import the plugin class.import com.microsoft.codepush.react.CodePush;<br \/>public class MainApplication extends application implements ReactApplication {<br \/>\u00a0\u00a0\u00a0\u00a0private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&#8230;<br \/>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ 2. Override the getJSBundleFile method to let\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ the CodePush runtime determines where to get the JS\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ bundle location from on each app start\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0@Override\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0protected String getJSBundleFile() {\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return CodePush.getJSBundleFile();\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\u00a0\u00a0\u00a0\u00a0};}<\/td>\r\n<\/tr>\r\n<\/tbody>\r\n<\/table>\r\n<\/figure>\r\n\r\n\r\n\r\n<p>To integrate CodePush into your <strong>iOS<\/strong> project, please perform the following steps:<\/p>\r\n\r\n\r\n\r\n<ol class=\"wp-block-list\">\r\n<li>Run cd ios &amp;&amp; pod install &amp;&amp; cd .. to install all the necessary CocoaPods dependencies.\u200b<\/li>\r\n\r\n\r\n\r\n<li>Open up the AppDelegate.m file, and add an import statement for the CodePush headers:<\/li>\r\n<\/ol>\r\n\r\n\r\n\r\n<figure class=\"wp-block-table\">\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td>#import &lt;CodePush\/CodePush.h&gt;<\/td>\r\n<\/tr>\r\n<\/tbody>\r\n<\/table>\r\n<\/figure>\r\n\r\n\r\n\r\n<ol class=\"wp-block-list\" start=\"3\">\r\n<li>Find particluar line of code, which sets the source URL for the bridge for production releases:<\/li>\r\n<\/ol>\r\n\r\n\r\n\r\n<figure class=\"wp-block-table\">\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td>return [[NSBundle mainBundle] URLForResource:@&#8221;main&#8221; withExtension:@&#8221;jsbundle&#8221;];<\/td>\r\n<\/tr>\r\n<\/tbody>\r\n<\/table>\r\n<\/figure>\r\n\r\n\r\n\r\n<ol class=\"wp-block-list\" start=\"4\">\r\n<li>Replace it with this line:<\/li>\r\n<\/ol>\r\n\r\n\r\n\r\n<figure class=\"wp-block-table\">\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td>return [CodePush bundleURL];<\/td>\r\n<\/tr>\r\n<\/tbody>\r\n<\/table>\r\n<\/figure>\r\n\r\n\r\n\r\n<p>Your <strong>sourceURLForBridge<\/strong> method should look like this:<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-table\">\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td>&#8211; (NSURL *)sourceURLForBridge:(RCTBridge *)bridge{\u00a0\u00a0#if DEBUG\u00a0\u00a0\u00a0\u00a0return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@&#8221;index&#8221; fallbackresource:nil];\u00a0\u00a0#else\u00a0\u00a0\u00a0\u00a0return [CodePush bundleURL];\u00a0\u00a0#endif}<\/td>\r\n<\/tr>\r\n<\/tbody>\r\n<\/table>\r\n<\/figure>\r\n\r\n\r\n\r\n<p>\u00a0At this point, you should have your <strong>App.js <\/strong>file should looking like this:<\/p>\r\n\r\n\r\n\r\n<p>1. Import CodePush\u00a0<\/p>\r\n\r\n\r\n\r\n<p>2. Add view with background color<\/p>\r\n\r\n\r\n\r\n<p>3. Create a release APK and install on the Android<\/p>\r\n\r\n\r\n\r\n<p>4. Install iOS version through the test flight or Install the release version through the Xcode<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-table\">\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td>import React from &#8220;react&#8221;;import { View } from &#8216;react-native&#8217;<br \/>import CodePush from &#8220;react-native-code-push&#8221;;<br \/>function App() {<br \/>\u00a0return (\u00a0\u00a0\u00a0&lt;<strong>View<\/strong> style={{ flex: 1.0, backgroundColor: &#8216;green&#8217; }}&gt;<br \/>\u00a0\u00a0\u00a0&lt;\/<strong>View<\/strong>&gt;\u00a0)}<br \/>export default CodePush(App)<\/td>\r\n<\/tr>\r\n<\/tbody>\r\n<\/table>\r\n<\/figure>\r\n\r\n\r\n\r\n<p>Now we are deploying our new version using a code push. We will change the background colour of the view from green to red<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-table\">\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td>import React from &#8220;react&#8221;;import { View } from &#8216;react-native.&#8217;<br \/>Import CodePush from &#8220;react-native-code-push&#8221;;<br \/>function App() {<br \/>\u00a0return (\u00a0\u00a0\u00a0&lt;<strong>View<\/strong> style={{ flex: 1.0, backgroundColor: \u201cred\u201d}}&gt;<br \/>\u00a0\u00a0\u00a0&lt;\/<strong>View<\/strong>&gt;\u00a0)}<br \/>export default CodePush(App)<\/td>\r\n<\/tr>\r\n<\/tbody>\r\n<\/table>\r\n<\/figure>\r\n\r\n\r\n\r\n<p>Open the command line tool and paste this command.\u00a0<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-table\">\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td>app center code push release-react -a {appcenter-username}\/{appname} -d {Staging\/Production}<\/td>\r\n<\/tr>\r\n<\/tbody>\r\n<\/table>\r\n<\/figure>\r\n\r\n\r\n\r\n<p>Check on the app centre once it rolls out. Just reopen the app and see the change displayed on the released Android and iOS versions.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"330\" class=\"wp-image-4964\" src=\"https:\/\/prometteursolutions.com\/blog\/wp-content\/uploads\/2023\/05\/image-1-1024x330.png\" alt=\"\" srcset=\"https:\/\/prometteursolutions.com\/blog\/wp-content\/uploads\/2023\/05\/image-1-1024x330.png 1024w, https:\/\/prometteursolutions.com\/blog\/wp-content\/uploads\/2023\/05\/image-1-300x97.png 300w, https:\/\/prometteursolutions.com\/blog\/wp-content\/uploads\/2023\/05\/image-1-768x248.png 768w, https:\/\/prometteursolutions.com\/blog\/wp-content\/uploads\/2023\/05\/image-1-1536x495.png 1536w, https:\/\/prometteursolutions.com\/blog\/wp-content\/uploads\/2023\/05\/image-1-100x32.png 100w, https:\/\/prometteursolutions.com\/blog\/wp-content\/uploads\/2023\/05\/image-1-700x226.png 700w, https:\/\/prometteursolutions.com\/blog\/wp-content\/uploads\/2023\/05\/image-1.png 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\r\n","protected":false},"excerpt":{"rendered":"<p>CODE PUSH\u00a0 A React Native app comprises of JavaScript files and any accompanying images. However, the metro bundler must bundle and distribute them as part of a platform-specific binary. That is a .ipa or .apk file.\u00a0 Once the app gets launched, updating either the JavaScript code, which may include fixing bugs,\u00a0 and adding of new [&hellip;]<\/p>\n","protected":false},"author":8,"featured_media":4967,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"content-type":"","om_disable_all_campaigns":false,"footnotes":""},"categories":[110],"tags":[],"class_list":{"0":"post-4962","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-app-development"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Microsoft CodePush: Workflow for mobile apps<\/title>\n<meta name=\"description\" content=\"Learn how Microsoft CodePush seamlessly integrates updates into your workflow and streamlines app releases.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/prometteursolutions.com\/blog\/how-to-implement-microsoft-codepush-in-your-mobile-app-development-workflow\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Microsoft CodePush: Workflow for mobile apps\" \/>\n<meta property=\"og:description\" content=\"Learn how Microsoft CodePush seamlessly integrates updates into your workflow and streamlines app releases.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/prometteursolutions.com\/blog\/how-to-implement-microsoft-codepush-in-your-mobile-app-development-workflow\/\" \/>\n<meta property=\"og:site_name\" content=\"blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prometteurSolutions\/timeline\/\" \/>\n<meta property=\"article:published_time\" content=\"2023-05-05T10:35:58+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-10-16T04:58:24+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/prometteursolutions.com\/blog\/wp-content\/uploads\/2023\/05\/How-to-Implement-Microsoft-Code-Push-in-Your-Mobile-App-Development-Workflow.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2560\" \/>\n\t<meta property=\"og:image:height\" content=\"1440\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Anil G\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@Iamprometteur\" \/>\n<meta name=\"twitter:site\" content=\"@Iamprometteur\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Anil G\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/prometteursolutions.com\/blog\/how-to-implement-microsoft-codepush-in-your-mobile-app-development-workflow\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/prometteursolutions.com\/blog\/how-to-implement-microsoft-codepush-in-your-mobile-app-development-workflow\/\"},\"author\":{\"name\":\"Anil G\",\"@id\":\"https:\/\/prometteursolutions.com\/blog\/#\/schema\/person\/a4ae2ebbf137687ec279232c86263362\"},\"headline\":\"How to Implement Microsoft CodePush in Your Mobile App Development Workflow\",\"datePublished\":\"2023-05-05T10:35:58+00:00\",\"dateModified\":\"2025-10-16T04:58:24+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/prometteursolutions.com\/blog\/how-to-implement-microsoft-codepush-in-your-mobile-app-development-workflow\/\"},\"wordCount\":1003,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/prometteursolutions.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/prometteursolutions.com\/blog\/how-to-implement-microsoft-codepush-in-your-mobile-app-development-workflow\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/prometteursolutions.com\/blog\/wp-content\/uploads\/2023\/05\/How-to-Implement-Microsoft-Code-Push-in-Your-Mobile-App-Development-Workflow.jpg\",\"articleSection\":[\"App Development\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/prometteursolutions.com\/blog\/how-to-implement-microsoft-codepush-in-your-mobile-app-development-workflow\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/prometteursolutions.com\/blog\/how-to-implement-microsoft-codepush-in-your-mobile-app-development-workflow\/\",\"url\":\"https:\/\/prometteursolutions.com\/blog\/how-to-implement-microsoft-codepush-in-your-mobile-app-development-workflow\/\",\"name\":\"Microsoft CodePush: Workflow for mobile apps\",\"isPartOf\":{\"@id\":\"https:\/\/prometteursolutions.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/prometteursolutions.com\/blog\/how-to-implement-microsoft-codepush-in-your-mobile-app-development-workflow\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/prometteursolutions.com\/blog\/how-to-implement-microsoft-codepush-in-your-mobile-app-development-workflow\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/prometteursolutions.com\/blog\/wp-content\/uploads\/2023\/05\/How-to-Implement-Microsoft-Code-Push-in-Your-Mobile-App-Development-Workflow.jpg\",\"datePublished\":\"2023-05-05T10:35:58+00:00\",\"dateModified\":\"2025-10-16T04:58:24+00:00\",\"description\":\"Learn how Microsoft CodePush seamlessly integrates updates into your workflow and streamlines app releases.\",\"breadcrumb\":{\"@id\":\"https:\/\/prometteursolutions.com\/blog\/how-to-implement-microsoft-codepush-in-your-mobile-app-development-workflow\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/prometteursolutions.com\/blog\/how-to-implement-microsoft-codepush-in-your-mobile-app-development-workflow\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/prometteursolutions.com\/blog\/how-to-implement-microsoft-codepush-in-your-mobile-app-development-workflow\/#primaryimage\",\"url\":\"https:\/\/prometteursolutions.com\/blog\/wp-content\/uploads\/2023\/05\/How-to-Implement-Microsoft-Code-Push-in-Your-Mobile-App-Development-Workflow.jpg\",\"contentUrl\":\"https:\/\/prometteursolutions.com\/blog\/wp-content\/uploads\/2023\/05\/How-to-Implement-Microsoft-Code-Push-in-Your-Mobile-App-Development-Workflow.jpg\",\"width\":2560,\"height\":1440,\"caption\":\"How to Implement Microsoft CodePush in Your Mobile App Development Workflow\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/prometteursolutions.com\/blog\/how-to-implement-microsoft-codepush-in-your-mobile-app-development-workflow\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/prometteursolutions.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to Implement Microsoft CodePush in Your Mobile App Development Workflow\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/prometteursolutions.com\/blog\/#website\",\"url\":\"https:\/\/prometteursolutions.com\/blog\/\",\"name\":\"blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/prometteursolutions.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/prometteursolutions.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/prometteursolutions.com\/blog\/#organization\",\"name\":\"blog\",\"url\":\"https:\/\/prometteursolutions.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/prometteursolutions.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/prometteursolutions.com\/blog\/wp-content\/uploads\/2021\/04\/new-logo.png\",\"contentUrl\":\"https:\/\/prometteursolutions.com\/blog\/wp-content\/uploads\/2021\/04\/new-logo.png\",\"width\":211,\"height\":60,\"caption\":\"blog\"},\"image\":{\"@id\":\"https:\/\/prometteursolutions.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/prometteurSolutions\/timeline\/\",\"https:\/\/x.com\/Iamprometteur\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/prometteursolutions.com\/blog\/#\/schema\/person\/a4ae2ebbf137687ec279232c86263362\",\"name\":\"Anil G\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/prometteursolutions.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/28ee72234de5cc37a72e64d1f123446e4b4f7dc1d79e3254b48ff8ecf91e27e5?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/28ee72234de5cc37a72e64d1f123446e4b4f7dc1d79e3254b48ff8ecf91e27e5?s=96&d=mm&r=g\",\"caption\":\"Anil G\"},\"url\":\"https:\/\/prometteursolutions.com\/blog\/author\/newadmin\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Microsoft CodePush: Workflow for mobile apps","description":"Learn how Microsoft CodePush seamlessly integrates updates into your workflow and streamlines app releases.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/prometteursolutions.com\/blog\/how-to-implement-microsoft-codepush-in-your-mobile-app-development-workflow\/","og_locale":"en_US","og_type":"article","og_title":"Microsoft CodePush: Workflow for mobile apps","og_description":"Learn how Microsoft CodePush seamlessly integrates updates into your workflow and streamlines app releases.","og_url":"https:\/\/prometteursolutions.com\/blog\/how-to-implement-microsoft-codepush-in-your-mobile-app-development-workflow\/","og_site_name":"blog","article_publisher":"https:\/\/www.facebook.com\/prometteurSolutions\/timeline\/","article_published_time":"2023-05-05T10:35:58+00:00","article_modified_time":"2025-10-16T04:58:24+00:00","og_image":[{"width":2560,"height":1440,"url":"https:\/\/prometteursolutions.com\/blog\/wp-content\/uploads\/2023\/05\/How-to-Implement-Microsoft-Code-Push-in-Your-Mobile-App-Development-Workflow.jpg","type":"image\/jpeg"}],"author":"Anil G","twitter_card":"summary_large_image","twitter_creator":"@Iamprometteur","twitter_site":"@Iamprometteur","twitter_misc":{"Written by":"Anil G","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/prometteursolutions.com\/blog\/how-to-implement-microsoft-codepush-in-your-mobile-app-development-workflow\/#article","isPartOf":{"@id":"https:\/\/prometteursolutions.com\/blog\/how-to-implement-microsoft-codepush-in-your-mobile-app-development-workflow\/"},"author":{"name":"Anil G","@id":"https:\/\/prometteursolutions.com\/blog\/#\/schema\/person\/a4ae2ebbf137687ec279232c86263362"},"headline":"How to Implement Microsoft CodePush in Your Mobile App Development Workflow","datePublished":"2023-05-05T10:35:58+00:00","dateModified":"2025-10-16T04:58:24+00:00","mainEntityOfPage":{"@id":"https:\/\/prometteursolutions.com\/blog\/how-to-implement-microsoft-codepush-in-your-mobile-app-development-workflow\/"},"wordCount":1003,"commentCount":0,"publisher":{"@id":"https:\/\/prometteursolutions.com\/blog\/#organization"},"image":{"@id":"https:\/\/prometteursolutions.com\/blog\/how-to-implement-microsoft-codepush-in-your-mobile-app-development-workflow\/#primaryimage"},"thumbnailUrl":"https:\/\/prometteursolutions.com\/blog\/wp-content\/uploads\/2023\/05\/How-to-Implement-Microsoft-Code-Push-in-Your-Mobile-App-Development-Workflow.jpg","articleSection":["App Development"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/prometteursolutions.com\/blog\/how-to-implement-microsoft-codepush-in-your-mobile-app-development-workflow\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/prometteursolutions.com\/blog\/how-to-implement-microsoft-codepush-in-your-mobile-app-development-workflow\/","url":"https:\/\/prometteursolutions.com\/blog\/how-to-implement-microsoft-codepush-in-your-mobile-app-development-workflow\/","name":"Microsoft CodePush: Workflow for mobile apps","isPartOf":{"@id":"https:\/\/prometteursolutions.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/prometteursolutions.com\/blog\/how-to-implement-microsoft-codepush-in-your-mobile-app-development-workflow\/#primaryimage"},"image":{"@id":"https:\/\/prometteursolutions.com\/blog\/how-to-implement-microsoft-codepush-in-your-mobile-app-development-workflow\/#primaryimage"},"thumbnailUrl":"https:\/\/prometteursolutions.com\/blog\/wp-content\/uploads\/2023\/05\/How-to-Implement-Microsoft-Code-Push-in-Your-Mobile-App-Development-Workflow.jpg","datePublished":"2023-05-05T10:35:58+00:00","dateModified":"2025-10-16T04:58:24+00:00","description":"Learn how Microsoft CodePush seamlessly integrates updates into your workflow and streamlines app releases.","breadcrumb":{"@id":"https:\/\/prometteursolutions.com\/blog\/how-to-implement-microsoft-codepush-in-your-mobile-app-development-workflow\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/prometteursolutions.com\/blog\/how-to-implement-microsoft-codepush-in-your-mobile-app-development-workflow\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/prometteursolutions.com\/blog\/how-to-implement-microsoft-codepush-in-your-mobile-app-development-workflow\/#primaryimage","url":"https:\/\/prometteursolutions.com\/blog\/wp-content\/uploads\/2023\/05\/How-to-Implement-Microsoft-Code-Push-in-Your-Mobile-App-Development-Workflow.jpg","contentUrl":"https:\/\/prometteursolutions.com\/blog\/wp-content\/uploads\/2023\/05\/How-to-Implement-Microsoft-Code-Push-in-Your-Mobile-App-Development-Workflow.jpg","width":2560,"height":1440,"caption":"How to Implement Microsoft CodePush in Your Mobile App Development Workflow"},{"@type":"BreadcrumbList","@id":"https:\/\/prometteursolutions.com\/blog\/how-to-implement-microsoft-codepush-in-your-mobile-app-development-workflow\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/prometteursolutions.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to Implement Microsoft CodePush in Your Mobile App Development Workflow"}]},{"@type":"WebSite","@id":"https:\/\/prometteursolutions.com\/blog\/#website","url":"https:\/\/prometteursolutions.com\/blog\/","name":"blog","description":"","publisher":{"@id":"https:\/\/prometteursolutions.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/prometteursolutions.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/prometteursolutions.com\/blog\/#organization","name":"blog","url":"https:\/\/prometteursolutions.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/prometteursolutions.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/prometteursolutions.com\/blog\/wp-content\/uploads\/2021\/04\/new-logo.png","contentUrl":"https:\/\/prometteursolutions.com\/blog\/wp-content\/uploads\/2021\/04\/new-logo.png","width":211,"height":60,"caption":"blog"},"image":{"@id":"https:\/\/prometteursolutions.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/prometteurSolutions\/timeline\/","https:\/\/x.com\/Iamprometteur"]},{"@type":"Person","@id":"https:\/\/prometteursolutions.com\/blog\/#\/schema\/person\/a4ae2ebbf137687ec279232c86263362","name":"Anil G","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/prometteursolutions.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/28ee72234de5cc37a72e64d1f123446e4b4f7dc1d79e3254b48ff8ecf91e27e5?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/28ee72234de5cc37a72e64d1f123446e4b4f7dc1d79e3254b48ff8ecf91e27e5?s=96&d=mm&r=g","caption":"Anil G"},"url":"https:\/\/prometteursolutions.com\/blog\/author\/newadmin\/"}]}},"_links":{"self":[{"href":"https:\/\/prometteursolutions.com\/blog\/wp-json\/wp\/v2\/posts\/4962","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prometteursolutions.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prometteursolutions.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prometteursolutions.com\/blog\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/prometteursolutions.com\/blog\/wp-json\/wp\/v2\/comments?post=4962"}],"version-history":[{"count":3,"href":"https:\/\/prometteursolutions.com\/blog\/wp-json\/wp\/v2\/posts\/4962\/revisions"}],"predecessor-version":[{"id":16913,"href":"https:\/\/prometteursolutions.com\/blog\/wp-json\/wp\/v2\/posts\/4962\/revisions\/16913"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prometteursolutions.com\/blog\/wp-json\/wp\/v2\/media\/4967"}],"wp:attachment":[{"href":"https:\/\/prometteursolutions.com\/blog\/wp-json\/wp\/v2\/media?parent=4962"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prometteursolutions.com\/blog\/wp-json\/wp\/v2\/categories?post=4962"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prometteursolutions.com\/blog\/wp-json\/wp\/v2\/tags?post=4962"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}