GitHub project

Upgrade from 6.x to 7.0.0

Version 7.0.0 of the Customer.io React Native SDK uses version 5.0.0 of our native iOS and Android SDKs. You don't need to change your code, but you need to update your iOS pods once.

What changed?

Version 7.0.0 of the React Native SDK uses version 5.0.0 of the Customer.io iOS and Android SDKs. You don’t need to change your JavaScript code or your AppDelegate. Your Podfile stays the same, unless you set up live notifications.

  • iOS 15 and Android 7.0 (API level 24): The native SDKs now require these versions. Every version of React Native that the SDK supports already requires iOS 15.1 and API level 24, so you don’t need to change your deployment target or minSdkVersion. The SDK’s Android module now defaults to a minSdkVersion of 24.
  • CioFirebaseWrapper comes from customerio-ios: If you send push notifications through Firebase Cloud Messaging (FCM), the customerio-reactnative/fcm pod now installs CioFirebaseWrapper from the customerio-ios package, at the same version as the rest of the iOS SDK. It no longer uses the separate customerio-ios-fcm package. The pod still installs FirebaseMessaging for you.
  • Newer Android libraries: The Android SDK now brings in firebase-messaging 26.0.0, play-services-base 18.11.1, and WorkManager (androidx.work) 2.12.0.
  • Android build: Your app needs compileSdk 36 or later and Android Gradle plugin 8.9.1 or later. This requirement isn’t new in 7.0.0, but apps on React Native 0.77 to 0.80 might need to raise these versions. See Minimum requirements.

Upgrade process

  1. Update the SDK:

    BASH
    npm install customerio-reactnative@7
    # or
    yarn add customerio-reactnative@7
  2. If you set up live notifications, change the CustomerIOLiveActivitiesTemplates and CustomerIOLiveActivitiesAttributes versions in your widget extension’s Podfile target to 5.0.0.

  3. Update the Customer.io pods. If you use FCM, run:

    BASH
    cd ios
    pod update CustomerIO CioFirebaseWrapper

    If you use APNs, run pod update CustomerIO from your ios folder instead.

    You only need to do this once, when you upgrade from 6.x. Your Podfile.lock still lists the 6.x pods, so a plain pod install stops with an error, and pod repo update doesn’t fix it.

  4. If your Android app pins older versions of firebase-messaging, play-services-base, or WorkManager, update them to at least 26.0.0, 18.11.1, and 2.12.0.

  5. Rebuild your app.

React Native Firebase 26.1 and later

React Native Firebase 26.1 and later adds Firebase to your iOS app through Swift Package Manager by default. The customerio-reactnative/fcm pod adds Firebase through CocoaPods. When your app has both copies of Firebase, the build fails. Versions 6.x and 7.0 have this limitation.

Version 7.1.0 adds the customerio-reactnative/fcm-core pod for these apps. It adds no Firebase of its own and uses the FirebaseMessaging that React Native Firebase brings in. It works with React Native Firebase 26.1 and later, including 27.

  1. Update customerio-reactnative to 7.1.0 or later.

  2. Install @react-native-firebase/messaging as well as @react-native-firebase/app. Without FirebaseMessaging in your app, the app stops at launch.

  3. In your ios/Podfile, replace customerio-reactnative/fcm with customerio-reactnative/fcm-core in your main target. Keep customerio-reactnative-richpush/fcm in your NotificationServiceExtension target (it doesn’t include Firebase), and keep import CioFirebaseWrapper in your app delegate, since fcm-core provides that module. Change any static use_frameworks! line to use_frameworks! :linkage => :dynamic, which React Native Firebase requires. Don’t list both fcm and fcm-core, because fcm brings Firebase back from CocoaPods. If you added $RNFirebaseDisableSPM = true or $RNFirebaseAsStaticFramework = true for the earlier workaround, remove both.

    RUBY
    use_frameworks! :linkage => :dynamic
    
    target 'YourApp' do
      config = use_native_modules!
      pod 'customerio-reactnative/fcm-core', :path => '../node_modules/customerio-reactnative'
    end
    
    target 'NotificationServiceExtension' do
      pod 'customerio-reactnative-richpush/fcm', :path => '../node_modules/customerio-reactnative'
    end
  4. From your ios folder, run pod install, then rebuild your app. If you’re upgrading from 6.x, run pod update CustomerIO CioFirebaseWrapper once instead of pod install.

If you stay on customerio-reactnative/fcm with React Native Firebase 26.x, add $RNFirebaseDisableSPM = true to your ios/Podfile, before any target block, so React Native Firebase uses CocoaPods too. Keep use_frameworks! :linkage => :static and set $RNFirebaseAsStaticFramework = true, as described in React Native Firebase’s 26.x iOS SPM guide and static frameworks setup. React Native Firebase 27 has no CocoaPods option, so it needs fcm-core.

Updated October 27, 2026