Installation
Quick start guide for installing and running on React Native.
1. Install from npmjs.com
Install the package at the root of your React Native project with npm or Yarn:
# Using npm
npm install --save react-native-notify-kit
# Using Yarn
yarn add react-native-notify-kit
2a. Android API versions
The library requires modern Android SDK levels. Update your android/build.gradle so that:
compileSdkVersion= 35targetSdkVersion= 35minSdkVersion= 24 (Android 7.0)
buildscript {
ext {
compileSdkVersion = 35
targetSdkVersion = 35
minSdkVersion = 24
...
}
...
}
Your Android project will fail to build with missing symbols if you use older values, because the library is compiled against API 35.
2b. Gradle versions
- Android Gradle Plugin: 8.2.2 or higher
- Gradle: 8.x
These match the versions the library is built with (see packages/react-native/android/build.gradle). Older Gradle/AGP combinations will fail with resource-packaging errors.
2c. Java version
The library is compiled with Java 17 (sourceCompatibility = VERSION_17, targetCompatibility = VERSION_17). JDK 17 (LTS) or 21 (LTS) is required to build on Android. JDK 8 and 11 are not supported.
2d. React Native and New Architecture
- React Native:
>=0.73(peer dependency). - New Architecture: required. The bridge is a TurboModule; the library does not support the old bridge. Ensure
newArchEnabled=trueinandroid/gradle.propertiesandRCT_NEW_ARCH_ENABLED=1in your iOS build environment (enabled by default in RN 0.76+).
2e. iOS deployment target
The iOS pod targets iOS 15.1+ (RNNotifee.podspec). Make sure your app's iOS deployment target is 15.1 or higher.
3. Autolinking with React Native
React Native 0.60+ provides autolinking, so no further manual linking is required. Rebuild your project after install:
# For iOS
cd ios/ && pod install --repo-update
npx react-native run-ios
# For Android
npx react-native run-android
4. Optional: iOS Notification Service Extension
If you plan to use FCM with remote push, you'll also want a Notification Service Extension (NSE) on iOS so rich payloads (attachments, interruption level, custom actions) render correctly when the app is in the background or killed.
The library ships a CLI command that scaffolds the target for you:
npx react-native-notify-kit init-nse
This patches your .pbxproj and Podfile automatically and generates a NotifyKitNSE target using NotifeeExtensionHelper for push enrichment. See FCM Mode for the full setup and server payload details.
Expo Support
The library works with Expo via the bare workflow or custom-dev-client (not Expo Go — notifications require native code).
Override the Android SDK versions through expo-build-properties:
npx expo install expo-build-properties
Then in your app.json / app.config.js:
{
"name": "my app",
"plugins": [
[
"expo-build-properties",
{
"android": {
"compileSdkVersion": 35,
"targetSdkVersion": 35,
"minSdkVersion": 24
}
}
]
]
}
Run npx expo prebuild and rebuild your app as described in the "Adding custom native code" guide.
For EAS Build, use an image that ships JDK 17. In eas.json:
{
"build": {
"development": {
"developmentClient": true,
"distribution": "internal",
"android": {
"image": "latest"
}
}
}
}
"image": "latest" resolves to the current Ubuntu image with JDK 17 as of Expo SDK 50+. See the EAS Build server infrastructure docs for the full list of images.
