Releases: klaviyo/klaviyo-swift-sdk
5.3.0
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-deviceattribute + layout contract updates — Injects device dimensions, safe-area insets, orientation, and DPR into the in-app forms webview at parse time. AddsaddSafeAreaInsetsToOffsetsflag for custom safe-area control. Cross-platform parity with Android SDK. (#560)content-availabledocumentation — README updated with guidance on thecontent-availablepush key.
Bug Fixes
- Fix
formWillAppearpattern matching and update test snapshots. (#558) - Fix deprecated
handlemethod and podspec dependency.
Other Changes
- Simplify keyboard handling in
InAppWindowManager. (#559)
5.2.3
Bug Fixes
- Skip profile reset when
setProfileis called with the same identifiers (#543) - Skip redundant profile API call when
setProfilehas no changes (#546)
New Contributors
- @jason-myers-klaviyo made their first contribution in #543
Full Changelog: 5.2.2...5.2.3
5.2.2
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
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
What's Changed
- Introduces
KlaviyoLocationmodule 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
- @amber-klaviyo made their first contribution in #456
Full Changelog: 5.1.0...5.2.0
5.2.0-alpha.1
What's Changed
- Geofencing alpha support
- Introduces
KlaviyoLocationmodule 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
5.1.0
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
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
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