Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 10 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,22 @@
All notable changes to this project will be documented in this file.
This project adheres to [Semantic Versioning](http://semver.org/).
## [Unreleased]

## [6.7.3]
### Added
- Added `async`/`await` variants of the device-disabling methods: `disableDeviceForCurrentUser() async throws` and `disableDeviceForAllUsers() async throws`. These are additive — the existing completion-handler methods are unchanged. On failure they throw the public `SendRequestError`.
- Added a `logoutUser(withOnSuccess:onFailure:)` overload to `IterableAPI`. Since logout is local-only, the handlers reflect the `disableDeviceForCurrentUser` call triggered when `autoPushRegistration` is enabled. The parameterless `logoutUser()` is unchanged.
- `AuthFailureReason` now conforms to `CustomDebugStringConvertible`, so the `Int`-backed enum prints readable case names (for example, `authTokenExpired`) in logs.

### Fixed
- Fixed a crash showing out-of-the-box embedded messages on CocoaPods. `IterableEmbeddedView.xib` moved out of `Resources/` in 6.5.9, but the podspec only bundled `Resources/`, so the nib was missing from the CocoaPods resource bundle and `loadViewFromNib()` crashed. The podspec now bundles the UI component XIBs too. SPM was not affected.
- Fixed in-app message positioning in landscape on devices with a notch or Dynamic Island. The webview width and horizontal center now account for the left and right safe-area insets, so top, bottom, and center messages stay within the safe area instead of running under the notch. Full-screen messages are unchanged.
- Fixed a `String`-length conflation (CWE-135) in `DeepLinkManager.isIterableDeepLink`. The regex search range is now built from the bridged `NSString.length` (UTF-16) instead of the Swift `String` grapheme-cluster count, so deep links containing non-BMP characters such as emoji are no longer missed.

### Changed
- `IterableAPI.register(token:)` is now routed through the offline queue, so a push token registration made while offline is automatically retried when connectivity returns instead of being dropped. The current user identity is captured at call time, so the queued request still targets the correct user after a logout or user switch. Calling `register(token:)` without a current user identity now reports `onFailure` instead of silently sending the request.
- Upgrade-then-downgrade hazard on UUA storage: the sessions blob in `UserDefaults` now encodes with `totalUnknownSessionCount` / `lastUnknownSession` / `firstUnknownSession`, and stored UUA events use `eventType` as the type discriminator. A customer who installs an SDK build with this change and later rolls back to a pre-SDK-412 build will hit a decode failure on the sessions blob (unknown user session counter resets to zero) and stored UUA events will be skipped on flush since the older SDK looks for `dataType`. Limited blast radius, but worth flagging for customers who pin or roll back versions.


## [6.7.2]
### Added
- Added optional `shouldLog(level:) -> Bool` to `IterableLogDelegate`. Defaults to `true` when not implemented. Lets the delegate short-circuit log calls before any message formatting work happens. `DefaultLogDelegate` routes its `minLogLevel` filter through this, and `NoneLogDelegate` returns `false` for every level.
Expand Down
2 changes: 1 addition & 1 deletion Iterable-iOS-AppExtensions.podspec
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Pod::Spec.new do |s|
s.name = "Iterable-iOS-AppExtensions"
s.module_name = "IterableAppExtensions"
s.version = "6.7.2"
s.version = "6.7.3"
s.summary = "App Extensions for Iterable SDK"

s.description = <<-DESC
Expand Down
2 changes: 1 addition & 1 deletion Iterable-iOS-SDK.podspec
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Pod::Spec.new do |s|
s.name = "Iterable-iOS-SDK"
s.module_name = "IterableSDK"
s.version = "6.7.2"
s.version = "6.7.3"
s.summary = "Iterable's official SDK for iOS"

s.description = <<-DESC
Expand Down
2 changes: 1 addition & 1 deletion swift-sdk/SDK/IterableAPI.swift
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import UIKit

@objcMembers public final class IterableAPI: NSObject {
/// The current SDK version
public static let sdkVersion = "6.7.2"
public static let sdkVersion = "6.7.3"

/// The email of the logged in user that this IterableAPI is using
public static var email: String? {
Expand Down
Loading