Releases: braze-inc/braze-swift-sdk
Releases · braze-inc/braze-swift-sdk
6.1.0
6.1.0
Fixed
- Fixes an issue that led to disproportionately large close buttons on in-app messages when the user has set a large font size in the device settings.
- Fixes an issue that would lock the screen in a specific orientation after the dismissal of an in-app message customized to be presented in that orientation.
- This issue only impacted iOS 16.0+ devices.
Added
- Adds new versions of
setCustomAttribute
to the User object to support nested custom attributes.- Renames
User.setCustomAttributeArray(key: String, array: [String]?)
tosetCustomAttribute(…)
to align it with other custom attribute setters, and adds "string" to theaddTo
andremoveFrom
attribute array methods to clarify which custom attributes they're used for.
- Renames
6.0.0
6.0.0
Breaking
- The in-app message data models sent to
BrazeInAppMessagePresenter.present(message:)
now contain remote asset URLs. Previously, these data models would contain local asset URLs.- This change is only breaking in two situations:
- When implementing a custom
BrazeInAppMessagePresenter
. - When relying on asset URLs being local in the message provided by
BrazeInAppMessageUIDelegate.inAppMessage(_:displayChoiceForMessage:)
- When implementing a custom
- The in-app message data models available from the other
BrazeInAppMessageUIDelegate
methods remain unchanged and contain local asset URLs.
- This change is only breaking in two situations:
Added
- The in-app message context now provides two additional methods:
getLocalAssets(urls:destinationURL:completionHandler:)
: Retrieves the local assets associated with the given remote asset URLs.withLocalAssets(message:destinationURL:completionHandler:)
: Returns a modified in-app message with all remote asset URLs replaced with local ones.
5.14.0
5.14.0
Fixed
- VoiceOver now correctly focuses on in-app message views when they are presented.
- Fixes an issue causing in-app messages with re-eligibility disabled to display multiple times under certain conditions.
- Fixes an issue where modal and full in-app message headers were truncated on devices running iOS versions lower than 16 when displaying non-ASCII characters.
- The dynamic variant of
BrazeUI.framework
in the release artifactbraze-swift-sdk-prebuilt.zip
is now an actual dynamic framework. Previously, this specific framework was mistakenly distributed as a static framework.
Added
- Adds the
BrazeSDKAuthDelegate
protocol as a separate protocol fromBrazeDelegate
, allowing for more flexible integrations.- Apps implementing
BrazeDelegate.braze(_:sdkAuthenticationFailedWithError:)
should migrate to useBrazeSDKAuthDelegate
and remove the old implementation. TheBrazeDelegate
method will be removed in a future major release.
- Apps implementing
5.13.0
5.13.0
Fixed
- Fixes an issue where the SDK would automatically track body clicks on non-legacy HTML in-app messages.
Added
- Adds the synchronous
deviceId
property on the Braze instance.deviceId(queue:completion:)
is now deprecated.deviceId() async
is now deprecated.
- Adds the
automaticBodyClicks
property to the HTML in-app message view attributes. This property can be used to enable automatic body clicks tracking on non-legacy HTML in-app messages.- This property is
false
by default. - This property is ignored for legacy HTML in-app messages.
- This property is
5.12.0
5.12.0
Starting with this release, this SDK will use Semantic Versioning.
Added
- Adds
json()
anddecoding(json:)
public methods to the Feature Flag model object for JSON encoding/decoding.
5.11.2
5.11.1
5.11.1
Fixed
- Fixes an issue preventing the correct calculation of the delay when retrying failed requests. This led to a more aggressive retry schedule than intended.
- Improves the performance of Live Activity tracking by de-duping push token tag requests.
- Fixes an issue in
logClick(using:)
where it would incorrectly open theurl
field in addition to logging a click for metrics. It now only logs a click for metrics.- This applies to the associated APIs for content cards, in-app messages, and news feed cards.
- It is still recommended to use the associated
Context
object to log interactions instead of these APIs.
Added
- Adds
BrazeKit.overrideResourceBundle
andBrazeUI.overrideResourceBundle
to allow for custom resource bundles to be used by the SDK.- This feature is useful when your setup prevents you from using the default resource bundle (e.g. Tuist).
5.11.0
5.11.0
Added
- Adds support for Live Activities via the
liveActivities
module on the Braze instance.- This feature provides the following new methods for tracking and managing Live Activities with the Braze push server:
launchActivity(pushTokenTag:activity:)
resumeActivities(ofType:)
- This feature requires iOS 16.1 and up.
- To learn how to integrate this feature, refer to the setup tutorial.
- This feature provides the following new methods for tracking and managing Live Activities with the Braze push server:
- Adds logic to re-synchronize Content Cards on SDK version changes.
- Adds provisional support for Xcode 14.3 Beta via the
braze-inc/braze-swift-sdk-xcode-14-3-preview
repository.
5.10.1
5.10.0
5.10.0
Fixed
- Fixes an issue where test content cards were removed before their expiration date.
- Fixes an issue in
BrazeUICompat
where the status bar appearance wasn't restored to its original state after dismissing a full in-app message. - Fixes an issue when decoding notification payloads where some valid boolean values weren't correctly parsed.
Changed
- In-app modal and full-screen messages are now rendered with
UITextView
, which better supports large amounts of text and extended UTF code points.