Security News
PyPI’s New Archival Feature Closes a Major Security Gap
PyPI now allows maintainers to archive projects, improving security and helping users make informed decisions about their dependencies.
react-native-code-push
Advanced tools
This plugin provides integration with the CodePush service, allowing you to easily update your React Native application to enable live app updates.
A React Native application's assets (JavaScript code and other resources) are traditionally bundled up as a .jsbundle
file which is loaded from the application installation location on the target device during runtime. After you submit an update to the store, the user downloads the update, and those assets will be replaced with the new assets.
CodePush is here to simplify this process by allowing you to instantly update your application's assets without having to submit a new update to the store. We do this by allowing you to upload and manage your React Native app bundles on our CodePush server. In the application, we check for the presence of updated bundles on the server. If they are available, we will install and persist them to the internal storage of the device. If a new bundle is installed, the application will reload from the updated package location.
For an easy way to get started, please see our demo application and our getting started guide.
npm install --save react-native-code-push
After installing the React Native CodePush plugin, open your project in Xcode. Open the react-native-code-push
in Finder, and drag the CodePush.xcodeproj
into the Libraries folder of Xcode.
In Xcode, click on your project, and select the "Build Phases" tab of your project configuration. Drag libCodePush.a from Libraries/CodePush.xcodeproj/Products
into the "Link Binary With Libraries" secton of your project's "Build Phases" configuration.
Under the "Build Settings" tab of your project configuration, find the "Header Search Paths" section and edit the value.
Add a new value, $(SRCROOT)/../node_modules/react-native-code-push
and select "recursive" in the dropdown.
Finally, edit your project's AppDelegate.m
.
At the top of the file, add the following line to import the CodePush headers.
#import "CodePush.h"
Then, find the following code:
jsCodeLocation = [NSURL URLWithString:@"http://localhost:8081/index.ios.bundle?platform=ios&dev=true"];
Replace it with this:
jsCodeLocation = [CodePush getBundleUrl];
This change allows CodePush to load the updated app location after an update has been applied. Before any updates are installed, CodePush will load your app from the bundled "main.jsbundle" file. After updates are installed, CodePush will load your app from the writable user directory, where the update has been downloaded.
Add the plugin to your app
Open your app's Info.plist
and add a "CodePushDeploymentKey" entry with your app's deployment key
In your app's Info.plist
make sure your "CFBundleShortVersionString" value is a valid semver version.
To publish an update for your app, run react-native bundle
, and then publish iOS/main.jsbundle
using the CodePush CLI.
npm install
cd
into Examples/CodePushDemoApp
npm install
Info.plist
and fill in the value for CodePushDeploymentKeynpm start
to launch the packagerCodePushDemoApp.xcodeproj
in XcodeCodePushDemoApp.xcodeproj
in XcodeContains details about an update package that has been downloaded locally or already applied (currently installed package).
Contains details about an update package that is available for download.
Queries the CodePush server for updates.
codePush.checkForUpdate(): Promise<RemotePackage>;
checkForUpdate
returns a Promise that resolves when the server responds with an update.
Usage:
codePush.checkForUpdate().then((update) => {
console.log(update);
});
codePush.getCurrentPackage(): Promise<LocalPackage>;
Get the currently installed package information. Returns a Promise that resolves with the local package.
codePush.notifyApplicationReady(): Promise<void>;
Notifies the plugin that the update operation succeeded.
Calling this function is required if a rollbackTimeout parameter is passed to your LocalPackage.apply
call.
If automatic rollback was not used, calling this function is not required and will result in a noop.
FAQs
React Native plugin for the CodePush service
The npm package react-native-code-push receives a total of 77,626 weekly downloads. As such, react-native-code-push popularity was classified as popular.
We found that react-native-code-push demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
PyPI now allows maintainers to archive projects, improving security and helping users make informed decisions about their dependencies.
Research
Security News
Malicious npm package postcss-optimizer delivers BeaverTail malware, targeting developer systems; similarities to past campaigns suggest a North Korean connection.
Security News
CISA's KEV data is now on GitHub, offering easier access, API integration, commit history tracking, and automated updates for security teams and researchers.