Skip to content

Releases: microsoft/react-native-code-push

v1.14.2-beta

13 Aug 05:30
Compare
Choose a tag to compare

This release improves the linking experience and fixes a bug with not being able to resolve the SoLoader library during runtime.

New Features

  1. react-native link react-native-code-push now automates all of the linking process for you. For Android, it imports the react-native-code-push library project for you and adds the codepush.gradle build step in settings.gradle and android/app/build.gradle, prompts you for your deployment key and modifies the MainApplication / MainActivity java file for you to include the CodePush react package and consult CodePush for the path to the root JS bundle file. For iOS, it similarly also adds the CodePush project to your XCode project, prompts you for your deployment key, adds it to your Info.plist file, and updates your AppDelegate.m file to consult CodePush for the path to your root JS bundle file.

Bug Fixes

  1. Removed the dependency on SoLoader. We earlier relied on it being there as a transitive dependency of React Native, however after the release of React Native 0.31 where it was made an external dependency, there were some reported runtime issues with being unable to resolve the library.

v1.14.1-beta

03 Aug 00:49
Compare
Choose a tag to compare

This release primarily adds a decorator function which can be used to wrap your root component in a higher order component that handles syncing updates with the CodePush server. Refer to the README for ways to use it.

New Features

  1. The default export of react-native-code-push can now also be used as a decorator function which takes in some options and wraps your root component in a higher order "CodePush" component. This component then handles syncing with the server for updates for you. Internally, the higher order component calls codePush.sync() at the right trigger events (e.g. when the app resumes). It also ensures that notifyAppReady() is called when the component mounts, so issues like #360 wouldn't happen.

Going forward, we intend to have this new decorator function be the primary way in which users instrument their app with CodePush instead of calling codePush.sync() directly, although the old method still works and can be used.

v1.13.6-beta

02 Aug 02:10
Compare
Choose a tag to compare

This release primarily adds support for overriding the app version used to query for updates, along with a few bug fixes.

New Features (General)

  1. Adds an overrideAppVersion() function that can be used to specify a custom application binary interface version, which would otherwise default to the app store version built into the app. This is an option for advanced users who have their own app store versioning system that they'd like to update independently to their ABI version. It also enables beta distribution for developers who would not like to increment their app store version between each iteration.

Bug Fixes

  1. When the updateDialog is shown while the app is in the background (such as when a new activity is launched), a NullPointerException can arise. This has been fixed in this release.

v1.13.5-beta

13 Jul 18:20
Compare
Choose a tag to compare

This release simply includes an enhancement by @joshuafeldman to allow users to specify the binary packaged root JS bundle in a subdirectory of the main bundle via

[CodePush bundleURLForResource:withExtension:subdirectory:]

Thanks!

v1.13.3-beta

12 Jul 18:42
Compare
Choose a tag to compare

This includes a few bug fixes:

  • Ensures that lint errors in our plugin don't break the build of the host app
  • Guards against NullPointerExceptions in getConfiguration for Android by using the reactContext instead of getCurrentActivity which is nullable.
  • Fixes 'unchecked call' warnings on classes obtained through reflection on Android
  • Fixes an issue with the currentActivity going into the background during an IMMEDIATE install on Android causing a NullPointerException when trying to invoke methods on the result of getCurrentActivity. The fix adds the resume handler on IMMEDIATE installs so that when the activity returns to the foreground, the update will be applied.

v1.13.2-beta

11 Jul 21:17
Compare
Choose a tag to compare

This release

  • Fixes a bug with the app crashing as a result of installing the same update multiple times
  • Improves the legacy restart logic by using the finalized currentActivity from loadBundle to prevent null pointer exceptions, and by using the Activity.recreate() method instead of finishing and re-launching the Activity via an Intent, which results in a better user experience

v1.13.0-beta

27 Jun 17:27
Compare
Choose a tag to compare

This release primarily adds support for configuring CodePush in Android apps using React Native v0.29+. It also adds a few bug fixes and minor enhancements. It is available now on NPM and can be installed via the following command: npm i --save react-native-code-push@latest.

New Features (Android)

  1. Added support for Android in React Native v0.29! The CodePush class includes a new constructor which accepts the MainApplication instance, instead of the MainActivity instance, which allows it to be initialized within the new ReactNativeHost object which is used in React Native v0.29. Check out the updated docs for details on how to configure CodePush with this React Native version.
  2. We aliased the CodePush.getBundleFile Java method as CodePush.getJSBundleFile to be more idiomatic with the respective methods in the ReactNativeHost and ReactActivity classes. CodePush.getBundleFile is now marked as deprecated and will be removed in a future release.

New Features (General)

  1. The object returned from getUpdateMetadata is now a fully-compliant LocalPackage instance (e.g. includes an install method). Thanks @nevir for this contribution!
  2. The notifyAppReady method now returns a StatusReport object which indicates whether an update was successfully installed or rolled back. Thanks @nevir for this contribution!

Bug Fixes

  1. Binary hashing has been fixed in React Native v0.29+ Our plugin supports hashing the contents of the binary in order to prevent installing an update that is equivalent to what was shipped in the store. Unfortunately, this feature was broken for a few releases due to a change in React Native itself, but it now works correctly in React Native v0.29+.

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.