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
-
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.
-
Install the plugin with version 7.0.0 of
customerio-reactnative, which is now the plugin’s peer dependency:BASHnpx expo install customerio-expo-plugin@4.0.0 customerio-reactnative@7.0.0Later 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. -
If you keep your
iosfolder between builds, regenerate it:BASHnpx expo prebuild --cleanOr, from your
iosfolder, runpod update CustomerIOonce. If you use FCM, addCioFirebaseWrapperto that command. If you use live notifications, also addCustomerIOLiveActivitiesTemplates CustomerIOLiveActivitiesAttributes. The plugin lists those widget pods without a version, sopod update CustomerIOalone leaves them on 4.x. YourPodfile.lockstill lists the pods fromcustomerio-reactnative6.x, so a plainpod installstops with an error. -
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.