A version checker for react-native applications
react-native-version-check
A version checker for react-native applications. This library gets the latest app version by parsing google play store, apple app store's app information or custom url.
expo
react-native-version-check supports expo! with react-native-version-check-expo
usage
// import
import VersionCheck from 'react-native-version-check-expo'
VersionCheck.getCountry().then(country => console.log(country))
Getting started
- npm
$ npm install react-native-version-check
- yarn
$ yarn add react-native-version-check
Example
$ git clone https://github.com/kimxogus/react-native-version-check.git
$ cd react-native-version-check/example
$ yarn # or npm install
$ react-native run-android # or react-native run-ios
Automatic Installation
$ react-native link
Manual Installation
- iOS - Link Manually
-
Add
.xcodeproj
file as library to XCode project.- In project navigator, right click Libraries
- Select
Add Files to [PROJECT_NAME]
- Add the
node_modules/react-native-version-check/ios/RNVersionCheck.xcodeproj
file
-
Add the
libRNVersionCheck.a
from theRNVersionCheck
project to your project's Build Phases > Link Binary With Libraries
iOS - CocoaPods Package Manager
- Add to your
Podfile
(assuming it's inios/Podfile
):pod 'react-native-version-check', :path => '../node_modules/react-native-version-check'
- Reinstall pod with
cd ios && pod install && cd ..
- Android
- Append the following lines to
android/settings.gradle
:
...
include ':react-native-version-check'
project(':react-native-version-check').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-version-check/android')
- Insert the following lines inside the dependencies block in
android/app/build.gradle
:
...
dependencies {
...
compile project(':react-native-version-check')
}
- Open up
android/app/src/main/java/[...]/MainApplication.java
......
import io.xogus.reactnative.versioncheck.RNVersionCheckPackage; // <--- HERE
......
@Override
protected List<ReactPackage> getPackages() {
......
new RNVersionCheckPackage() // <------ HERE
......
}
Usage
import { Linking } from 'react-native';
import VersionCheck from 'react-native-version-check';
VersionCheck.getCountry()
.then(country => console.log(country)); // KR
console.log(VersionCheck.getPackageName()); // com.reactnative.app
console.log(VersionCheck.getCurrentBuildNumber()); // 10
console.log(VersionCheck.getCurrentVersion()); // 0.1.1
VersionCheck.getLatestVersion()
.then(latestVersion => {
console.log(latestVersion); // 0.1.2
});
VersionCheck.getLatestVersion({
provider: 'appStore' // for iOS
})
.then(latestVersion => {
console.log(latestVersion); // 0.1.2
});
VersionCheck.getLatestVersion({
provider: 'playStore' // for Android
})
.then(latestVersion => {
console.log(latestVersion); // 0.1.2
});
VersionCheck.getLatestVersion() // Automatically choose profer provider using `Platform.select` by device platform.
.then(latestVersion => {
console.log(latestVersion); // 0.1.2
});
VersionCheck.getLatestVersion({
forceUpdate: true,
provider: () => fetch('http://your.own/api')
.then(r => r.json())
.then(({version}) => version), // You can get latest version from your own api.
}).then(latestVersion =>{
console.log(latestVersion);
});
VersionCheck.needUpdate()
.then(async res => {
console.log(res.isNeeded); // true
if (res.isNeeded) {
Linking.openURL(await VersionCheck.getStoreUrl()); // open store if update is needed.
}
});
VersionCheck.needUpdate({
depth: 2
}).then(res => {
console.log(res.isNeeded);
// false; because first two fields of current and the latest versions are the same as "0.1".
});
VersionCheck.needUpdate({
currentVersion: "1.0",
latestVersion: "2.0"
}).then(res => {
console.log(res.isNeeded); // true
});
VersionCheck.needUpdate({
currentVersion: "1.1",
latestVersion: "2.0",
}).then(res => {
console.log(res.isNeeded); // false
});