Skip to content

Conversation

@evan-masseau
Copy link
Contributor

@evan-masseau evan-masseau commented Sep 19, 2025

Description

Intended contents of this release:

  • Update to react native version 0.80.2
  • Swift SDK version 5.1.0
  • Android SDK version 4.1.0
  • Universal link support
  • In App Forms trigger by event support

Due Diligence

  • I have tested this on a simulator/emulator or a physical device, on iOS and Android (if applicable).
  • I have added sufficient unit/integration tests of my changes.
  • I have adjusted or added new test cases to team test docs, if applicable.
  • I am confident these changes are implemented with feature parity across iOS and Android (if applicable).

Release/Versioning Considerations

  • Patch Contains internal changes or backwards-compatible bug fixes.
  • Minor Contains changes to the public API.
  • Major Contains breaking changes.
  • Contains readme or migration guide changes.
    • If so, please merge to a feature branch so documentation updates only go live upon official release.
  • This is planned work for an upcoming release.
    • If no, author or reviewer should account for this in a release plan, or describe why not below.

Changelog / Code Overview

Test Plan

Related Issues/Tickets


Note

Upgrade RN to 0.80.2 and native SDKs (iOS 5.1.0, Android 4.1.0), add universal tracking link handling API, event uniqueId support, in‑app forms updates, and refresh examples/docs/configs.

  • SDK/API:
    • Add Klaviyo.handleUniversalTrackingLink(url) across JS (src/index.tsx), iOS (KlaviyoBridge, KlaviyoReactNativeSdk.mm), and Android (KlaviyoReactNativeSdkModule.kt).
    • Support uniqueId on events (JS → iOS/Android bridges).
    • Bump library version to 2.1.0 (package.json, iOS/Android version resources) and depend on KlaviyoSwift 5.1.0/KlaviyoForms 5.1.0 (.podspec).
  • Platform Upgrades:
    • React Native → 0.80.2 (packages, example app, pods) and Hermes/tooling updates.
    • Android SDK → 4.1.0 (android/gradle.properties); Gradle wrapper → 8.14.1.
    • Example Android Kotlin → 2.1.20; iOS adds new-arch flags and associated domains for Universal Links.
  • Examples/Config:
    • Android: add Verified App Link intent filter for https://.../u/ tracking links; update MainApplication init to new RN APIs.
    • iOS: add continueUserActivity handling, entitlements for Associated Domains; formatting/initialization tweaks.
    • Example RN app: handle incoming links and delegate to Klaviyo.handleUniversalTrackingLink.
  • Documentation:
    • Expand README deep linking with Universal Links/App Links setup and RN Linking example; update In‑App Forms feature matrix (adds Event Triggers); minor cleanup.
  • Tests:
    • Add unit tests for handleUniversalTrackingLink validation/dispatch and event uniqueId.

Written by Cursor Bugbot for commit 0e6d909. This will update automatically on new commits. Configure here.

* First pass at 0.78 -> 0.79.5

* Actually bump from 0.78->0.79.5

* Runs on example app, test app remote, test app local

* 0.80.2 bump

* add backwards moduleResolution fix

* oops remove test ID

* Some android-specific tweaks for 0.80

* Adjust the runner type and xcode version

---------

Co-authored-by: Evan Masseau <>
* Consume universal links branches of mobile SDKs (#258)

[REVERT] consume universal links branches of mobile SDKs

* [CHNL-24361] add handleUniversalTrackingLink (#256)

* added `handleTrackingLink` method

* added documentation

* added URL validation and error handling

* added unit tests

* [CHNL-24361] add handleUniversalTrackingLink (Android) (#257)

* added `handleTrackingLink` method

* added documentation

* added URL validation and error handling

* added unit tests

* added `handleUniversalTrackingLink` method

* [CHNL-24362][iOS] inject deep link handler (#260)

* added `KlaviyoDeepLinkAPI` interface

* added KlaviyoDeepLinkEventEmitter

* added `registerDeepLinkHandler` to KlaviyoBridge

* export KlaviyoDeepLinkEventEmitter

* updated `Klaviyo.ts`

* implemented `registerDeepLinkHandler` logic

* [CHNL-24362][Android] wired up Android deep link handler (#261)

* wired up Android deep link handler

* Additional android tweaks for universal linking

* Synchronously return whether the link is going to be handled by Klaviyo sdk

---------

Co-authored-by: Evan Masseau <>

* Fix mistake in this test, must not have been detected by CI because of funky branching at the time.

* Universal link fixes (#269)

* turns out the URL object is unusable on react (knew it was too good to be true)

* tweak example app to clarify use of the return value. remove register handler while i'm here.

* leave this change to andrew's PR.

---------

Co-authored-by: Evan Masseau <>

* Remove registerDeepLinkHandler (#270)

removed all `registerDeepLinkHandler` code

* Remove the unneeded android deep link emitter stuff (#271)

Co-authored-by: Evan Masseau <>

* Update native SDK targets

* Update example/src/App.tsx

Co-authored-by: Andrew Balmer <[email protected]>

* oh dear github.

---------

Co-authored-by: Andrew Balmer <[email protected]>
Co-authored-by: Evan Masseau <>
@evan-masseau evan-masseau marked this pull request as ready for review September 24, 2025 18:57
@evan-masseau evan-masseau requested review from a team as code owners September 24, 2025 18:57
@evan-masseau evan-masseau changed the title Rel/2.1.0 2.1.0 Release Sep 24, 2025
evan-masseau and others added 3 commits September 25, 2025 15:21
* Set uniqueId

* back to 4.1.0

* Safer typing on unique ID.
unrelated, but don't give klaviyo a null initial url

---------

Co-authored-by: Evan Masseau <>
adding code to RN example app
* comitting readme updates for universal linking

* removed some redundant content in the readme

* minor fixes
# org.gradle.parallel=true
#Tue Dec 19 15:08:27 EST 2023
KlaviyoReactNativeSdk_klaviyoAndroidSdkVersion=4.0.1
KlaviyoReactNativeSdk_klaviyoAndroidSdkVersion=rel~4.1.0-SNAPSHOT
Copy link

Choose a reason for hiding this comment

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

These versions get cleaned up later yes?

Copy link
Contributor

Choose a reason for hiding this comment

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

Addressed in #275

use_frameworks! :linkage => :static

# Insert override klaviyo-swift-sdk pods below this line when needed
pod 'KlaviyoCore', :git => 'https://github.com/klaviyo/klaviyo-swift-sdk.git', :branch => 'master'
Copy link

Choose a reason for hiding this comment

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

same here... should be udpated yes?

Copy link
Contributor

Choose a reason for hiding this comment

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

Addressed in #275

<key>NSExtensionPrincipalClass</key>
<string>$(PRODUCT_MODULE_NAME).NotificationService</string>
</dict>
<key>RCTNewArchEnabled</key>
Copy link

Choose a reason for hiding this comment

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

I'm assuming most of this was approved earlier just checking this is intentional.


// Validate that the URL is a Klaviyo universal tracking link using regex
// Pattern: https://domain/u/path
const klaviyoTrackingLinkPattern = /^https:\/\/[^/]+\/u\/.*$/;
Copy link

Choose a reason for hiding this comment

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

uhhh...do we need this code in here too? Doesn't the native code handle this or do we want an immediate response back?

* Bump SDK version to 2.1.0

* Bump Android to 4.1.0

* Remove temp hack pointing swift to master

* Pull in Swift 5.1.0 SDK
@evan-masseau evan-masseau merged commit f360b23 into master Oct 15, 2025
13 checks passed
Sign up for free to 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.

5 participants