-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Expo config plugin for the Infobip Mobile Messaging React Native SDK. Automates native project setup for push notifications, Notification Service Extension, Firebase, and deep linking.
For installation and a quick start, see the README. For SDK runtime usage (message handling, in-app chat, inbox, etc.), see the React Native plugin wiki.
Expo Go is not supported. This plugin requires a development build (Expo Go does not support config plugins).
| Component | Version |
|---|---|
| Expo SDK | 55+ |
| React Native | 0.83+ |
| Infobip RN Plugin | 14.8.0+ |
| iOS SDK (MobileMessaging) | 15.0.0 |
| Android SDK | 14.14.2 |
| iOS Deployment Target | 15.1+ (Expo SDK 55 floor) |
| Android minSdkVersion | 24 (Expo SDK 55 floor; Infobip Android SDK supports 21+) |
| Xcode | 16+ |
| Node.js | 18+ |
All props are optional. Add them to the plugin entry in app.json:
["infobip-mobile-messaging-expo-plugin", { ...props }]| Prop | Type | Default | Description |
|---|---|---|---|
iosMode |
'development' | 'production'
|
'development' |
APNs environment. Must match the provisioning profile's aps-environment -- a mismatch causes APNs to silently drop pushes. See Troubleshooting -- Common Error Reference. |
iosAppGroupSuffix |
string |
'infobip' |
App group suffix. Full ID becomes group.<bundleId>.<suffix>. |
iosAppGroup |
string |
-- | Full app group ID override. When set, iosAppGroupSuffix is ignored. Must start with group.. |
enableNotificationExtension |
boolean |
true |
Creates the NSE target for rich push and delivery reports. |
iosNSEFilePath |
string |
-- | Path to a custom NotificationService.swift. Use this when handling notifications from multiple push SDKs in the same NSE -- see Troubleshooting -- Multiple Push SDK Conflicts. |
iosDeploymentTarget |
string |
auto-detected from main app target's IPHONEOS_DEPLOYMENT_TARGET, falling back to '15.1'
|
NSE target's minimum iOS deployment target. Override only if you need to pin to a specific value. |
devTeam |
string |
-- | Apple Development Team ID. Only needed for local Xcode builds; EAS managed credentials handle this automatically -- see EAS Build Setup -- Managed Credentials. |
nseVersion |
string |
'15.0.0' |
MobileMessagingNotificationExtension pod version. Pinned to the RN plugin's mmVersion -- mismatch can cause silent data corruption in shared Keychain/UserDefaults. Verify with: grep mmVersion node_modules/infobip-mobile-messaging-react-native-plugin/*.podspec. |
Static libraries (Expo default) and static frameworks (
expo-build-propertiesuseFrameworks: "static") are fully supported. Dynamic frameworks (useFrameworks: "dynamic") are not supported on Expo SDK 55:pod installaborts with"transitive dependencies that include statically linked binaries: (ExpoModulesCore, ExpoModulesJSI)". This is an Expo SDK 55 limitation tracked upstream in expo/expo#43238; use the default linkage orstaticmode instead. See also Troubleshooting --use_frameworks!Issue.
| Prop | Type | Default | Description |
|---|---|---|---|
enableGoogleServices |
boolean |
true |
Adds Google Services Gradle plugin. Disable if another plugin already handles this. |
googleServicesFilePath |
string |
-- | Path to google-services.json. Plugin prop takes precedence over expo.android.googleServicesFile when both are set. |
| Prop | Type | Default | Description |
|---|---|---|---|
deepLinkScheme |
string |
-- | Custom URL scheme for deep links (e.g., 'myapp'). Configures URL schemes on iOS and intent filters on Android. |
The simplest configuration with defaults:
{
"expo": {
"ios": {
"bundleIdentifier": "com.example.myapp"
},
"android": {
"package": "com.example.myapp",
"googleServicesFile": "./google-services.json"
},
"plugins": ["infobip-mobile-messaging-expo-plugin"]
}
}This gives you:
- iOS: push entitlements (
development), NSE target, app groupgroup.<bundleId>.infobip - Android: Google Services plugin applied,
google-services.jsoncopied
All options specified:
{
"expo": {
"ios": {
"bundleIdentifier": "com.example.myapp"
},
"android": {
"package": "com.example.myapp",
"googleServicesFile": "./google-services.json"
},
"plugins": [
[
"infobip-mobile-messaging-expo-plugin",
{
"iosMode": "production",
"iosAppGroup": "group.com.example.myapp.infobip",
"enableNotificationExtension": true,
"iosDeploymentTarget": "15.1",
"devTeam": "ABCDE12345",
"nseVersion": "15.0.0",
"enableGoogleServices": true,
"googleServicesFilePath": "./google-services.json",
"deepLinkScheme": "myapp"
}
]
]
}
}- EAS Build Setup -- credential management for iOS builds (managed and manual)
- Troubleshooting -- common build errors and solutions
- React Native Plugin Wiki -- SDK initialization, message handling, in-app chat, inbox, and all runtime APIs