GitHub project

iOS 27 & UIScene support

Use existing customerio-ios APIs to keep push and deep links working when your app adopts UIScene or is built with the iOS 27 SDK.

If your app adopts UIScene, or you build it with the iOS 27 SDK and run it on iOS 27 or later, the system now delivers URLs and universal links to your UISceneDelegate instead of your AppDelegate. The current customerio-ios 4.7.6 release works with this lifecycle using existing public APIs; it does not require a separate scene-specific release.

AppDelegate-only apps need no change. If your app doesn’t adopt UIScene, keep your current integration.

When you do adopt UIScene:

  • Keep CustomerIO.initialize, APNs registration, and UNUserNotificationCenter handling in your AppDelegate.
  • Configure SDKConfigBuilder.deepLinkCallback to route Customer.io deep-link destinations into your app.
  • Handle cold and warm URLs and universal links in your SceneDelegate (scene(_:willConnectTo:options:), scene(_:openURLContexts:), scene(_:continue:)).
  • If you use Live Activities, pass each opened URL through CustomerIO.liveActivities.handleWidgetUrl(_:) once before routing.

Customer.io doesn’t add a SceneDelegate or choose which window opens a URL. Your app keeps full control of navigation. The supported scope is one simultaneous window scene.

See the iOS 27 UIScene migration guide for the full walkthrough.

Updated August 28, 2026