> This page is part of the [Customer.io documentation](https://docs.customer.io). For the complete index, see [llms.txt](https://docs.customer.io/llms.txt).
> Last updated: October 27, 2026
> To take actions in Customer.io from an agent, use the [Customer.io CLI](https://docs.customer.io/ai/cli/get-started.md) or the [MCP server](https://docs.customer.io/ai/mcp/get-started.md).

# 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](https://docs.customer.io/integrations/sdk/react-native/getting-started/how-it-works/#minimum-requirements).

## Upgrade process

1.  Update the SDK:

    ```
    npm install customerio-reactnative@7
    # or
    yarn add customerio-reactnative@7
    ```

2.  If you set up [live notifications](https://docs.customer.io/integrations/sdk/react-native/live-notifications/set-up/), 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:

    ```
    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.

    ```
    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 ↗](https://github.com/invertase/react-native-firebase/blob/v26.4.0/docs/ios-spm.mdx) and [static frameworks setup ↗](https://github.com/invertase/react-native-firebase/blob/v26.4.0/docs/index.mdx). React Native Firebase 27 has no CocoaPods option, so it needs `fcm-core`.
