GitHub project

Upgrade from 3.x to 4.0.0

Version 4.0.0 of the Customer.io Expo plugin requires version 7.0.0 of customerio-reactnative, which uses version 5.0.0 of our native iOS and Android SDKs. For most apps, the upgrade is a version bump.

What changed?

Version 4.0.0 of the Expo plugin requires version 7.0.0 of customerio-reactnative, which uses version 5.0.0 of the Customer.io iOS and Android SDKs, and Expo SDK 54 or later. For apps already on Expo SDK 54 or later, this upgrade is a version bump. Your plugin configuration, your app code, and the iOS 15.1 and Android API level 24 minimums stay the same.

On Android, the SDK now brings in firebase-messaging 26.0.0, play-services-base 18.11.1, and WorkManager (androidx.work) 2.12.0. Gradle picks up these versions automatically. If your app forces older versions of these libraries, raise those versions.

Android builds also need compileSdk 36 or later and Android Gradle plugin 8.9.1 or later. Expo SDK 54 and later meet these requirements, but Expo SDK 53 doesn’t. See Minimum requirements.

Upgrade process

  1. If your app is on Expo SDK 53 or earlier, upgrade it to Expo SDK 54 or later first. See Expo’s SDK upgrade guide. Apps that stay on SDK 53 or earlier can keep using version 3.x of the plugin.

  2. Install the plugin with version 7.0.0 of customerio-reactnative, which is now the plugin’s peer dependency:

    BASH
    npx expo install customerio-expo-plugin@4.0.0 customerio-reactnative@7.0.0

    Later 4.x versions of the plugin can require a later version of customerio-reactnative. If npm reports a peer dependency conflict, see npm version conflict when installing or updating.

  3. If you keep your ios folder between builds, regenerate it:

    BASH
    npx expo prebuild --clean

    Or, from your ios folder, run pod update CustomerIO once. If you use FCM, add CioFirebaseWrapper to that command. If you use live notifications, also add CustomerIOLiveActivitiesTemplates CustomerIOLiveActivitiesAttributes. The plugin lists those widget pods without a version, so pod update CustomerIO alone leaves them on 4.x. Your Podfile.lock still lists the pods from customerio-reactnative 6.x, so a plain pod install stops with an error.

  4. Rebuild your app.

Known limitation

React Native Firebase 27 includes Firebase only through Swift Package Manager, so you can’t use it with the fcm push provider yet. Version 3.x has the same limitation.

Updated October 27, 2026