react-native-manual-code-push
v1.0.9
Published
manual-code-push
Downloads
317
Readme
Instaling
yarn add react-native-manual-code-push
yarn add react-native-code-push
yarn add @sayem314/react-native-keep-awake
iOS Setup
Once you've acquired the CodePush plugin, you need to integrate it into the Xcode project of your React Native app and configure it correctly. To do this, take the following steps:
Plugin Installation and Configuration for React Native 0.60 version and above (iOS) Run cd ios && pod install && cd .. to install all the necessary CocoaPods dependencies.
Open up the AppDelegate.m file, and add an import statement for the CodePush headers:
#import <CodePush/CodePush.h>
// Find the following line of code, which sets the source URL for bridge for production releases:
return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];
// Replace it with this line:
return [CodePush bundleURL];
- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge
{
#if DEBUG
return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil];
#else
return [CodePush bundleURL];
#endif
}
Info.plist
CodePushDeploymentKey YOUR_CODE_PUSH_KEY
Android setup Plugin Installation and Configuration for React Native 0.60 version and above (Android)
In your android/settings.gradle file, make the following additions at the end of the file:
include ':app', ':react-native-code-push'
project(':react-native-code-push').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-code-push/android/app')
In your android/app/build.gradle file, add the codepush.gradle file as an additional build task definition to the end of the file:
apply from: "../../node_modules/react-native-code-push/android/codepush.gradle"
Update the MainApplication.java file to use CodePush via the following changes:
// 1. Import the plugin class.
import com.microsoft.codepush.react.CodePush;
public class MainApplication extends Application implements ReactApplication {
private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
...
// 2. Override the getJSBundleFile method in order to let
// the CodePush runtime determine where to get the JS
// bundle location from on each app start
@Override
protected String getJSBundleFile() {
return CodePush.getJSBundleFile();
}
};
}
strings.xml
<resources>
...
<string moduleConfig="true" name="CodePushDeploymentKey">YOUR_CODE_PUSH_KEY</string>
</resources>
Usage
import { CodePush } from 'react-native-manual-code-push';
import iconApp from '/path_to_assset_icon';
...
<NavigationContainer>
<Stack.Screen>
...
</Stack.Screen>
<CodePush image={iconApp} /> <!-- add this
</NavigationContainer>
const App = ()=>{
return (
....
);
}
let codePushOptions = {
checkFrequency: codePush.CheckFrequency.MANUAL,
};
let CodePushApp = codePush(codePushOptions)(App);
export default CodePushApp;