Releases: braze-inc/braze-swift-sdk
Releases · braze-inc/braze-swift-sdk
8.2.0
8.2.0
Added
- Adds support for remotely starting Live Activities via push notifications.
- Adds the following methods to the
liveActivities
module: - This feature requires iOS 17.2 or higher.
- For usage details, refer to the updated Live Activities tutorial here.
- Adds the following methods to the
- Adds return values for existing
liveActivities
methods:launchActivity(pushTokenTag:activity:)
now returns a discardableTask<Void, Never>?
.
- Adds
pushToStartTokens
as a new tracking property type.
8.1.0
8.1.0
Added
- Adds the
is_test_send
boolean value in the in-app message JSON representation. - Adds the
Braze.subscribeToSessionUpdates(_:)
method andBraze.sessionUpdatesStream
property to subscribe to the session updates events generated by the SDK. - Adds public APIs to access
BrazeKit
,BrazeLocation
andBrazeUI
resources bundles:Braze.Resources.bundle
BrazeLocationResources.bundle
BrazeUIResources.bundle
BrazeKit.overrideResourceBundle
andBrazeUI.overrideResourceBundle
have been deprecated in favor ofBrazeKit.overrideResourcesBundle
andBrazeUI.overrideResourcesBundle
.- Re-enables visionOS sample apps requiring SDWebImage in
Examples-CocoaPods.xcworkspace
. SDWebImage for visionOS is now supported when using CocoaPods. - Updated SDWebImage dependency in
BrazeUICompat
to5.19.0+
.
Fixed
- Fixes multiple issues on visionOS:
- Sessions now properly start as expected.
- The click behavior Open Web URL Inside App now properly opens the URL in a modal web view. Previously, the URL would always be opened using the default web browser.
- Braze.Notifications.Payload.targetScene is now defined.
- Braze.URLContext.targetScene is now properly set by the SDK for in-app messages click actions.
- Braze.WebViewBridge.ScriptMessageHandler.init(logClick:logError:showNewsFeed:closeMessage:braze:) is now defined.
- BrazeDelegate.braze(_:willPresentModalWithContext:) now have a default implementation.
- Handling network requests and persisting data properly extend the lifetime of the application for processing.
8.0.1
8.0.0
8.0.0
⚠️ Warning
- This release reports the SDK version as
7.7.0
instead of8.0.0
.
Breaking
- Compiles the SDK using Xcode version 15.2 (15C500b).
- This also raises the minimum deployment targets to iOS 12.0 and tvOS 12.0.
- The
BrazeLocation
class is now marked as unavailable. It was previously deprecated in favor ofBrazeLocationProvider
in 5.8.1.
Added
- Adds support for visionOS 1.0.
⚠️ Rich push notifications and Push Stories may not display as expected on visionOS 1.0. We are monitoring the latest versions for potential fixes.⚠️ CocoaPods is not yet supported by SDWebImage for visionOS. visionOS sample apps requiring SDWebImage have been disabled in theExamples-CocoaPods.xcworkspace
. Refer to the SwiftPM or manual integration Xcode project instead.
7.7.0
7.7.0
Added
- Updates the prebuilt release assets to include the privacy manifest for manual integrations of SDWebImage.
- Follow the manual integration guide to add the
SDWebImage.bundle
to your project for static XCFrameworks.
- Follow the manual integration guide to add the
- Enhances support for language localizations.
- Introduces a localization for Azerbaijani strings.
- Updates Ukrainian localization strings for accuracy.
Fixed
- Fixes the default button placement for full in-app message views.
- Fixes an issue where setting
Braze.Configuration.Api.endpoint
to a URL with invalid characters could cause a crash.- If the SDK is given an invalid endpoint, it will no longer attempt to make network requests and will instead log an error.
- Fixes an issue preventing
BrazeLocation
from working correctly when using the dynamic XCFrameworks.
6.6.2
7.6.0
7.6.0
Added
- Adds the
Braze.InAppMessage.Data.isTestSend
property, which indicates whether an in-app message was triggered as part of a test send. - Adds logic to separate Braze data into tracking and non-tracking requests.
- Adds the following methods to set and edit the allow list for properties that will be used for tracking:
Braze.Configuration.Api.trackingPropertyAllowList
: Set the initial allow list before initializing Braze.Braze.updateTrackingAllowList(adding:removing:)
: Update the existing allow list during runtime.
- For full usage details on these configurations, refer to our tutorial here.
- Adds the following methods to set and edit the allow list for properties that will be used for tracking:
Fixed
- Adds safeguards to prevent a rare race condition occuring in the SDK network layer.
- Prevents in-app message test sends from attempting re-display after being discarded by a custom in-app message UI delegate.
- Fixes an issue in the default Braze in-app message UI where some messages were not being removed from the stack after display.
- Fixes the compilation of
BrazeKitCompat
andBrazeUICompat
in Objective-C++ projects. - Fixes an issue in
BrazeUICompat
where the header text in Full or Modal in-app messages would be duplicated in place of the body text under certain conditions. - Fixes the encoding of values of types
Float
,Int8
,Int16
,Int32
,Int64
,UInt
,UInt8
,UInt16
,UInt32
andUInt64
. Those types were previously not supported in custom events and purchase properties. - Fixes an issue preventing purchase events from being logged when the product identifier has a leading dollar sign.
- Fixes an issue preventing custom attributes from being logged when the attribute key has a leading dollar sign.
7.5.0
7.5.0
Added
- Adds privacy manifests for
BrazeKit
andBrazeLocation
to describe Braze's data collection policies. For more details, refer to Apple's documentation on privacy manifests.- More fine-tuned configurations to manage your data collection practices will be made available in a future release.
- Adds the
optInWhenPushAuthorized
configuration property to specify whether a user's notification subscription state should automatically be set tooptedIn
when updating push permissions to authorized. - The WebKit Inspector developer tool is now enabled by default for all instances of
BrazeInAppMessagesUI.HtmlView
. It can be disabled by settingBrazeInAppMessagesUI.HtmlView.Attributes.allowInspector
tofalse
.
Fixed
- Fixes an issue with the code signatures of XCFrameworks introduced in
7.1.0
. - Fixes a crash on tvOS devices running versions below 16.0, caused by the absence of the
UIApplication.openNotificationSettingsURLString
symbol in those OS versions. - Fixes an issue where a content card would not display if the value under "Redirect to Web URL" was an empty string.
- Fixes incorrect behavior in BrazeUI where tapping the body of a
Full
orModal
in-app message with buttons and an "Image Only" layout would dismiss that message and process the button's click action.- Tapping the body will now be a no-op, bringing parity with other platforms.
7.4.0
7.4.0
Added
- Adds two alternative repositories to support specialized integration options. For instructions on how to leverage them, refer to their respective READMEs:
- braze-inc/braze-swift-sdk-prebuilt-static which provides all Braze modules as static XCFrameworks.
- braze-inc/braze-swift-sdk-prebuilt-dynamic which provides all Braze modules as dynamic XCFrameworks.
- In-App Message assets from URLs containing the query parameter
cache=false
will not be prefetched.- Additionally, when presented as a part of In-App Messages or Content Cards, those URLs will be fetched using the
URLRequest.CachePolicy.reloadIgnoringLocalAndRemoteCacheData
caching policy, which always requests a fresh version from the source and ignores any cached versions.
- Additionally, when presented as a part of In-App Messages or Content Cards, those URLs will be fetched using the
Fixed
- Fixes XCFrameworks headers to use the
#import
syntax instead of@import
for compatibility with Objective-C++ contexts. - Fixes the push token tag validation during Live Activity registration, accepting strings up to 256 bytes instead of 255 bytes.
Braze.ContentCards.unviewedCards
no longer includes Control cards to bring parity with Android and Web.- Fixes an Objective-C metaclass crash that occurs when initializing a custom subclass of certain BrazeUI views.
7.3.0
7.3.0
Added
- Adds support for Expo Notifications event listeners when using the automatic push integration.
Fixed
- Fixes a rare concurrency issue that might result in duplicated events when logging large amount of events.
- Fixes an issue where
user.set(dateOfBirth:)
was not setting the date of birth accurately due to variations in the device's timezone.