Installation
Add the package, Nitro peer dependency, and native requirements.
Install the package
npm install @rnforge/react-native-in-app-updates react-native-nitro-modulesRebuild the app
This package includes native code. After installing it, rebuild the native app for the platform you use.
Android
Rebuild the Android app from Android Studio or your React Native CLI workflow.
iOS
Install pods, then rebuild the iOS app from Xcode or your React Native CLI workflow.
cd ios && pod installExpo
Expo Go cannot load this package because it includes native code. Use a development build.
npx expo prebuildThen build and run the development app with your Expo workflow.
Requirements
The package is built with Nitro and requires:
| Area | Requirement |
|---|---|
| React Native | Version supported by react-native-nitro-modules |
| Native bridge | react-native-nitro-modules |
| Android | compileSdkVersion 34+, NDK 27+, Google Play Services |
| iOS | Xcode 16.4+, Swift 5.9+ |
Platform Setup
Android
No JavaScript setup is required after installation. The native module uses Google Play Core for real in-app update flows.
Real update flows require the app to be:
- installed from Google Play, not sideloaded or installed from a debug build
- signed with the same certificate as the Play track build
- running on a device with Google Play Services available
- built without legacy APK expansion (
.obb) files
If those requirements are not met, APIs return typed unsupported results instead of pretending an update can run.
iOS
No additional setup is required. iOS does not support Google Play-style immediate or flexible in-app updates, so update-flow APIs return typed unsupported results.
Use openStorePage({ ios: { appStoreId } }) to send users to the App Store.
Verify Installation
After installing, call the API once to confirm the native module loads:
import { getUpdateStatus } from '@rnforge/react-native-in-app-updates';
const status = await getUpdateStatus();
console.log(status.platform);
console.log(status.supported);
console.log(status.reason);On iOS without an App Store ID, supported is false and reason is missing-app-store-id. On Android debug or sideload installs, supported is usually false with unsupported-install-source. See Troubleshooting if the status does not match what you expect.