Frequently Asked Questions

1. Does the Apple App Store allow developers to perform these types of updates?

According to section 3.3.2 of Apple’s developer agreement, as long as you are using the CodePush service to release bug fixes and improvements/features that maintain the app’s original/presented purpose (i.e. don’t CodePush a calculator into a first-person shooter), then you will be fine, and your users will be happy. In order to provide a tangible example, our team published a (pretty cheesy!) CodePush-ified game to the Google Play Store and Apple App Store, and had no problems getting it through the review process.

Because Cordova apps are executed within a WebView, and React Native apps are executed within JavaScriptCore, from a technology perspective, these runtimes are unique in their ability to leverage dynamic code downloads according to the aforementioned Apple developer agreement.

2. What will the service cost?

While CodePush is in beta, it will remain completely free to use, with absolutely no limits (e.g. # of apps, size of release assets). Additionally, even after the service “RTMs”, there will always be a free tier. Whether there will be any further changes, however, is currently TBD. We’re excited to see how developers make use of the service, and we look forward to getting lots of feedback from developers before making any changes to the pricing model.

3. How should I interpret the preview status of the service?

The CodePush service, our management CLI and the Cordova and React Native SDKs are currently in a production-quality state (and we’re constantly improving them!). Additionally, we have lots of users who are successfully deploying updates to their apps in production today (see our showcase for some examples).

However, we believe that there are other key scenarios/features we need to implement before stamping it as “RTM”, and we want to gather as much feedback and experiences from developers to ensure we are building the right thing. Additionally, while the service is in preview, we don’t offer an official SLA. That said, our team is very committed to responding to GitHub issues, questions on StackOverflow/Discord and/or any e-mail inquiries, so please don’t hesitate to reach out.

4. Which Cordova platforms are supported?

Our Cordova plugin currently supports Android and iOS. Windows support is coming soon and we would love to hear any feedback regarding interest in other platforms.

5. Which React Native platforms are supported?

Our React Native module supports iOS, Android and the new Windows implementation. As new and compelling platforms are introduced for React Native, we will gather as much feedback from the community and add CodePush support if it makes sense.

6. What about support for “platform X”?

The CodePush service is completely agnostic to app platform, and we want to enable any and all compelling scenarios as they arise. If you have any suggestions regarding which platform we should go after next, please don’t hesitate to reach out.

7. Is the service really limited to pushing just “code”?

The CodePush service itself is concerned simply with synchronizing files between developers and their end-users. It is our client SDKs that layer the opinion on top regarding the types of files they help synchronize. For example, the Cordova plugin will sync any files which live in the platform-specific www folder (including images, etc.), and the React Native plugin will sync your JS bundle file and any image assets.

In the future, we are excited to experiment/implement client SDKs that enable new compelling scenarios, as well as support app platforms other then those which are JavaScript-based. If you have any suggestions or feedback here, please let us know!