Skip to content

Releases: microsoft/react-native-code-push

v1.12.2-beta

08 Jun 20:04
Compare
Choose a tag to compare

This is simply a patch release that addresses a few user-reported issues. It available now on NPM and can be acquired by running npm i react-native-code-push@latest.

Bug Fixes (General)

  1. Fixed an issue where the Promise returned by sync wouldn't get resolved/rejected if the update dialog was being used and an exception happened while downloading an update (rare but possible).

Bug Fixes (iOS)

  1. Fixed an issue where the downloadProgressCallback option passed to sync wasn't getting triggered (thanks @mikedouglas!). Android wasn't affected by this issue.
  2. Improved our Podspec by marking the SSZipArchive headers as private, and adding the Core subspec that allows you to link to CodePush without the additional SSZipArchive dependency (thanks @nevir!)

v1.12.1-beta

06 Jun 15:48
Compare
Choose a tag to compare

This release simply fixes an issue when trying to install the CodePush plugin via CocoaPods.

v1.12.0-beta

27 May 00:51
Compare
Choose a tag to compare

This release includes a few bug fixes as well as a really cool feature contribution from @dbasedow. It is now available on NPM and can be installed via npm i --save react-native-code-push@latest.

New Features

  1. Restarts can be disallowed during critical end user workflows The Javascript API exposes a new disallowRestart method which allows a component to ensure that no programmatic update restarts can occur while it is mounted (resulting in a "quick flash" that some users may think is a crash). This can help prevent end user interruptions during periods where it would be unacceptable (e.g. an on boarding process), but without preventing the app to discover and download available updates as soon as possible (via a call to allowRestart). Check out the docs for more details.

Bug Fixes

  1. Our podspec includes a new NoZip subspec to allow apps that already include SSZipArchive to link with CodePush, without receiving duplicate symbol errors
  2. A bug was fixed with install metrics reporting when an update is successfully installed after a previous update had been rolled back.
  3. Our package.json file now indicates where our *.d.ts file is located, so that supporting editors (e.g. VS Code) can provide auto-completion support for our API out-of-the-box.

v1.11.0-beta

13 May 00:45
Compare
Choose a tag to compare

This release includes support for React Native app's targeting Windows (UWP), fixes support for iOS7 and improves the reliability of the install metrics reporting. It is now available on NPM and can be installed via npm i --save react-native-code-push@latest.

New features (Windows)

  1. Windows (UWP) support – Adds initial pass at supporting the Windows platform. Code as well as asset updates are fully supported but we still need to add metrics support, hashing of the stored binary contents as well as recent perf improvements generated by throttling of download progress events.

Bug Fixes (General)

  1. Retry install metrics after failure - Improves the install metrics mechanism in order to make sure that telemetry isn't lost due to poor network conditions.

Bug Fixes (iOS)

  1. Fix support for iOS7 – Changes our implementation to provide iOS7 workarounds for Obj-C APIs only supported on iOS8+.

v1.10.6-beta

29 Apr 01:16
Compare
Choose a tag to compare

This release primarily includes performance improvements to the update download process (for both iOS and Android), and also fixes a critical user-reported bug on iOS. It is now available on NPM and can be installed via npm i --save react-native-code-push.

Performance Improvements

  1. The download progress events that are triggered when calling either sync or RemotePackage.download are no longer dispatched to the JS thread unless the app actually specified a downloadProgressCallback. Additionally, even if an app subscribed to download progress events, we now throttle them along with the device's vsync, so that the CodePush plugin doesn't overwhelm the JS thread with more events than it can actually render, and ensures that we impose a small impact as little an impact on the app's frame rate as possible.

Bug Fixes (iOS)

  1. CodePush updates are now explicitly excluded from iTunes and/or iCloud backups, which ensures that they don't impact the end users storage capacity, and also prevents any App Store rejections based on their storage guidelines.

v1.10.5-beta

26 Apr 20:31
Compare
Choose a tag to compare

This is just a quick bug fix release that addresses a regression with the client-side rollback feature on Android devices.

v1.10.4-beta

22 Apr 23:05
Compare
Choose a tag to compare

This is just a quick bug fix release that addresses an issue that could occur when an update is downloaded while the app is in the foreground, but finished installing after it has been put into the background.

v1.10.3-beta

20 Apr 19:40
Compare
Choose a tag to compare

This is just a quick bug fix release that also improves upon the existing getCurrentPackage method. It is now available on NPM and can be updated immediately by running npm i --save react-native-code-push@latest.

New Features

  1. Metadata about the currently running update can now be reliably retrieved The existing getCurrentPackage method allowed programmatically retrieving the metadata for CodePush updates (e.g. what is its label? is it mandatory?), but unfortunately, it would always return the "latest" locally available update, which could either be the running update or a pending update. Therefore, there wasn't a reliable way to get the metadata for the update that is currently running, that disregarded any pending updates To address this, we are deprecating the getCurrentPackage method and replacing it with a new getUpdateMetadata method that allows explicitly specifying whether you want the metadata for the running, pending or latest (using the same behavior as getCurrentPackage) update. Check out the docs for more details.

    import codePush, { UpdateState } from "react-native-code-push";
    
    // Reliably get the running update metadata
    // Both of these calls are equivalent
    codePush.getUpdateMetadata();
    codePush.getUpdateMetadata(UpdateState.RUNNING);
    
    // Check if there is a pending update, and if so, get its metadata
    codePush.getUpdateMetadata(UpdateState.PENDING);
    
    // Provides the same behavior as the existing getCurrentPackage method.
    // The return object still contains the isPending property to determine
    // if the latest update is pending or not.
    codePush.getUpdateMetadata(UpdateState.LATEST);
  2. The notifyApplicationReady method has been aliased as notifyAppReady to be more consistent with the use of "App" instead of "Application" in most React Native APIs (e.g. AppRegistry, AppState). To prevent a breaking change, notifyApplicationReady isn't removed, but our docs will prescribe the new alias moving forward.

Bug Fixes (iOS)

  1. We resolved a bug where CodePush updates on disk weren't correctly being cleared after bumping the app version when using React Native packager as opposed to specifying [CodePush bundleURL] as your JS bundle location.

v1.10.2-beta

14 Apr 15:44
Compare
Choose a tag to compare

This is just a quick bug fix release that addresses a few commonly reported issues. It is now available on NPM and can be updated immediately by running npm i --save react-native-code-push@latest.

Bug Fixes

  1. Fixed an issue with programmatic restarts (e.g. calling CodePush.restartApp, specifying any InstallMode value other than ON_NEXT_RESTART when calling sync) on pre-KitKat Android devices.
  2. Removed the pre-release version tag from our podspec (-beta), which was causing issues for apps being submitted to iTunes Connect. We could have just documented this workaround, but it seemed like a better solution for our users to just remove it on our end, since our NPM packages and GitHub releases already include the -beta semantics.

v1.10.1-beta

08 Apr 18:14
Compare
Choose a tag to compare

This release primarily improves some of the fundamentals of CodePush for Android and deepens our integration with RNPM (we hope to do more more in the future!). It is now available on NPM and can be updated immediately by running npm i --save react-native-code-push@latest.

New Features (Android)

  1. App restarts are now much smoother for the end user Previously, when an app was restarted in order to apply a CodePush update, we would stop and re-start the Activity that represented the current React Native app. While this method worked, it had the effect of being a fairly obtrusive user experience. This release improves the restart by doing a reload of the React Native bridge, which is able to re-use the existing Activity and simply results in a quick "flash" when reloading the new JS bundle file. This experience mirrors what we already have on iOS and should be a lot nicer for your users.

  2. RNPM-based installs now generate the CodePush package code correctly When you run rpm link react-native-code-push, it will update your MainActivity class with the right constructor call to the CodePush class (instead of generating new CodePush() which isn't a valid signature), which further simplifies the installation experience.

  3. RNPM-based installs now prompt you for your CodePush deployment key If you're using RNPM >=1.6.0 (we recommend it!), when you run rpm link react-native-code-push, you will be prompted for your Android deployment key, which will be used to auto-populate your MainActivity file. You can choose to ignore this for now and specify it later using our configuration instructions. We hope to add support for iOS as soon as RNPM allows automating the creation of Info.plist entries.

    Install prompt