Skip to content

Releases: klaviyo/klaviyo-swift-sdk

5.3.0

24 Apr 17:58
de07fa7

Choose a tag to compare

What's New

  • Push notification action buttons — Klaviyo messages can now include up to 3 tappable buttons with custom labels and deep link or open-app actions. No additional integration setup required. (#502)
  • Flyout forms — New in-app form presentation style for flyout/side-panel layouts. (#535)
  • Form lifecycle event hooks — New public API to observe in-app form lifecycle events (shown, dismissed, CTA clicked), aligned with the Android SDK contract. (#539)
    KlaviyoSDK().registerFormLifecycleHandler { event in
        switch event {
        case .formShown(let formId, let formName): ...
        case .formDismissed(let formId, let formName): ...
        case .formCtaClicked(let formId, let formName, let buttonLabel, let deepLinkUrl): ...
        }
    }
  • data-klaviyo-device attribute + layout contract updates — Injects device dimensions, safe-area insets, orientation, and DPR into the in-app forms webview at parse time. Adds addSafeAreaInsetsToOffsets flag for custom safe-area control. Cross-platform parity with Android SDK. (#560)
  • content-available documentation — README updated with guidance on the content-available push key.

Bug Fixes

  • Fix formWillAppear pattern matching and update test snapshots. (#558)
  • Fix deprecated handle method and podspec dependency.

Other Changes

  • Simplify keyboard handling in InAppWindowManager. (#559)

5.2.3

14 Apr 20:35
b79e85e

Choose a tag to compare

Bug Fixes

  • Skip profile reset when setProfile is called with the same identifiers (#543)
  • Skip redundant profile API call when setProfile has no changes (#546)

New Contributors

Full Changelog: 5.2.2...5.2.3

5.2.2

23 Mar 19:53
542e84d

Choose a tag to compare

What's Changed

  • Replace bundle scan with targeted CocoaPods plist lookup to prevent SDK init hang by @belleklaviyo in #527

Full Changelog: 5.2.1...5.2.2

5.2.1

05 Mar 20:06

Choose a tag to compare

This minor patch release includes a small update to accommodate the upcoming release of our Flutter SDK.

Full Changelog: 5.2.0...5.2.1

5.2.0

16 Jan 15:26
433da96

Choose a tag to compare

What's Changed

  • Introduces KlaviyoLocation module for geofencing support
  • Improved reliability of API requests when app is backgrounded, network connection restored, and backend issues (5XX errors)
  • Updates sample app with geofencing
  • Fix a race condition in EventBuffer
  • Fix plist loading performance issue
  • API Revision bump to 2026-01-15
  • Support for videos in push

New Contributors

Full Changelog: 5.1.0...5.2.0

5.2.0-alpha.1

10 Dec 21:31

Choose a tag to compare

5.2.0-alpha.1 Pre-release
Pre-release

What's Changed

  • Geofencing alpha support
  • Introduces KlaviyoLocation module for geofencing
  • Updates sample app with geofencing
  • Fix a race condition in EventBuffer
  • Fix plist loading performance issue
  • API Revision bump to 2025-10-15

Full Changelog: 5.1.0...5.2.0-alpha.1

5.1.1

12 Nov 20:21
321f481

Choose a tag to compare

What's Changed

Fix 3-second startup hang in non-React Native apps caused by expensive bundle lookup operations (#441)

Full Changelog: 5.1.0...5.1.1

5.1.0

14 Oct 15:47
2841ad5

Choose a tag to compare

Universal linking

We've added full support for trackable universal links. Prior to this release, customers had to choose between a universal link with no click-tracking functionality, or a click-tracking link with no "universal" functionality. With this release, customers can issue link that's both universal and trackable as a profile event.

Refer to the Universal Links section of the README for details on how to implement trackable universal linking functionality.

In-App Forms: Trigger by Profile Event

We’ve added support for triggering in app forms using an analytics event. There are no SDK changes you need to make to support this, all events created with the existing function will be consumed by our forms logic to determine whether or not it should display.


While there are no breaking changes with this minor release, we encourage you to refer to the migration guide for details how you may choose to update from version 5.0.0.

Full Changelog: 5.0.3...5.1.0

5.0.3

16 Sep 20:31

Choose a tag to compare

What's Changed

  • Fixes an issue on devices running iOS 26.0 in which an in-app form could trigger an external app to open if the user’s device has an app installed to open HTML documents

Full Changelog: 5.0.2...5.0.3

4.2.2

16 Sep 20:33
07dcf3c

Choose a tag to compare

What's Changed

  • Fixes an issue on devices running iOS 26.0 in which an in-app form could trigger an external app to open if the user’s device has an app installed to open HTML documents

Full Changelog: 4.2.1...4.2.2