Skip to content

feat: add Expo scene deep-link readiness (MBL-2304) - #646

Merged
Shahroz16 merged 7 commits into
mainfrom
codex/mbl-2304-expo-scene-readiness
Aug 27, 2026
Merged

feat: add Expo scene deep-link readiness (MBL-2304)#646
Shahroz16 merged 7 commits into
mainfrom
codex/mbl-2304-expo-scene-readiness

Conversation

@Shahroz16

@Shahroz16Shahroz16 commented Aug 26, 2026

Copy link
Copy Markdown
Contributor

Summary

  • buffer SDK-originated scene deep links until the JavaScript Linking listener is ready
  • expose CustomerIO.setDeepLinkRoutingReady() for Expo native auto-initialization
  • log when a URL is actually buffered so a missing readiness call is diagnosable without warning on healthy launches
  • install Expo scene routing without changing AppDelegate-only or Android behavior

Packaging note

  • set the CocoaPods header_dir so static-framework Expo builds resolve the React Native wrapper module consistently; this changes the installed public-header directory but not the supported JavaScript API

Validation

  • TypeScript, lint, and Jest tests pass
  • Android compileDebugKotlin passes
  • generated Expo SDK 58 projects build with static and dynamic CocoaPods linkage
  • warm and cold scene URL routing was exercised in the iOS simulator
  • simulator notification delivery and tap reached React Native Linking after native auto-init readiness

Part of MBL-2304.

@Shahroz16
Shahroz16 requested a review from a team as a code ownerAugust 26, 2026 10:35
@github-actions

github-actionsBot commented Aug 26, 2026

Copy link
Copy Markdown
Contributor

Sample app builds 📱

Below you will find the list of the latest versions of the sample apps. It's recommended to always download the latest builds of the sample apps to accurately test the pull request.


  • iOS FCM: 646.7.0 (29796720)
  • iOS APN: 646.7.0 (29796720)

@mrehan27mrehan27 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approving. The buffering design holds up — I traced readiness end to end and the split is right: JS-init hosts are covered automatically by markReactNativeReady() in initialize, and the new API exists only for natively-initialized hosts that never call it. README is thorough and accurate.

Comments are hardening, not blockers. The test-coverage one is worth doing before merge, since customerio/customerio-expo-plugin#398 will bind to this behavior once released.

Comment threadios/wrappers/CustomerIOReactNativeDeepLinkRouter.swift
Comment thread__tests__/deep-link-routing-readiness.test.ts
Comment threadcustomerio-reactnative.podspec
@Shahroz16
Shahroz16 merged commit 016f9ac into mainAug 27, 2026
18 checks passed
@Shahroz16
Shahroz16 deleted the codex/mbl-2304-expo-scene-readiness branch August 27, 2026 07:23
cio-mobile-releaseBot pushed a commit that referenced this pull request Aug 27, 2026
## [6.8.0](6.7.0...6.8.0) (2026-08-27)
### Features
* add Expo scene deep-link readiness (MBL-2304) ([#646](#646)) ([016f9ac](016f9ac))
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@Shahroz16@mrehan27