From 4d6e5b78ea5debc2a5e0b8932dce7a9c0cad9459 Mon Sep 17 00:00:00 2001 From: Brian Anglin Date: Fri, 26 Jun 2026 13:10:37 -0700 Subject: [PATCH] Release 4.15.4 with Singular integration attribute --- CHANGELOG.md | 6 ++++++ .../Analytics/Attribution/IntegrationAttribute.swift | 5 +++++ Sources/SuperwallKit/Misc/Constants.swift | 2 +- SuperwallKit.podspec | 2 +- .../Analytics/Attribution/AttributionTests.swift | 4 +++- 5 files changed, 16 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9a8aa4c460..f0fa071645 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,12 @@ The changelog for `SuperwallKit`. Also see the [releases](https://github.com/superwall/Superwall-iOS/releases) on GitHub. +## 4.15.4 + +### Enhancements + +- Adds `singularDeviceId` as an `IntegrationAttribute`. + ## 4.15.3 ### Fixes diff --git a/Sources/SuperwallKit/Analytics/Attribution/IntegrationAttribute.swift b/Sources/SuperwallKit/Analytics/Attribution/IntegrationAttribute.swift index 6831565625..29603c987c 100644 --- a/Sources/SuperwallKit/Analytics/Attribution/IntegrationAttribute.swift +++ b/Sources/SuperwallKit/Analytics/Attribution/IntegrationAttribute.swift @@ -73,6 +73,9 @@ public enum IntegrationAttribute: Int { /// The Appstack identifier. case appstackId + + /// The Singular device identifier (SDID). + case singularDeviceId } // MARK: - CustomStringConvertible @@ -123,6 +126,8 @@ extension IntegrationAttribute: CustomStringConvertible { return "customerioId" case .appstackId: return "appstackId" + case .singularDeviceId: + return "singularDeviceId" } } } diff --git a/Sources/SuperwallKit/Misc/Constants.swift b/Sources/SuperwallKit/Misc/Constants.swift index 2326830fd3..e926212ec0 100644 --- a/Sources/SuperwallKit/Misc/Constants.swift +++ b/Sources/SuperwallKit/Misc/Constants.swift @@ -18,5 +18,5 @@ let sdkVersion = """ */ let sdkVersion = """ -4.15.3 +4.15.4 """ diff --git a/SuperwallKit.podspec b/SuperwallKit.podspec index d7ef7686ee..8167b28f93 100644 --- a/SuperwallKit.podspec +++ b/SuperwallKit.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |s| s.name = "SuperwallKit" - s.version = "4.15.3" + s.version = "4.15.4" s.summary = "Superwall: In-App Paywalls Made Easy" s.description = "Paywall infrastructure for mobile apps :) we make things like editing your paywall and running price tests as easy as clicking a few buttons. superwall.com" diff --git a/Tests/SuperwallKitTests/Analytics/Attribution/AttributionTests.swift b/Tests/SuperwallKitTests/Analytics/Attribution/AttributionTests.swift index 330513e747..a5bd749f57 100644 --- a/Tests/SuperwallKitTests/Analytics/Attribution/AttributionTests.swift +++ b/Tests/SuperwallKitTests/Analytics/Attribution/AttributionTests.swift @@ -348,7 +348,8 @@ struct AttributionTests { .tenjinId: "tenjin-id", .posthogUserId: "posthog-user-id", .customerioId: "customerio-id", - .appstackId: "appstack-id" + .appstackId: "appstack-id", + .singularDeviceId: "singular-device-id" ] // When @@ -378,6 +379,7 @@ struct AttributionTests { #expect(storedProps["posthogUserId"] as? String == "posthog-user-id") #expect(storedProps["customerioId"] as? String == "customerio-id") #expect(storedProps["appstackId"] as? String == "appstack-id") + #expect(storedProps["singularDeviceId"] as? String == "singular-device-id") } }