diff --git a/BrazeKit.podspec b/BrazeKit.podspec
index 7ed54af2be..264511a01b 100644
--- a/BrazeKit.podspec
+++ b/BrazeKit.podspec
@@ -1,6 +1,6 @@
Pod::Spec.new do |s|
s.name = 'BrazeKit'
- s.version = '11.3.0'
+ s.version = '11.4.0'
s.summary = 'Braze Main SDK library providing support for analytics and push notifications.'
s.homepage = 'https://braze.com'
@@ -9,8 +9,8 @@ Pod::Spec.new do |s|
s.authors = 'Braze, Inc.'
s.source = {
- :http => 'https://github.com/braze-inc/braze-swift-sdk/releases/download/11.3.0/BrazeKit.zip',
- :sha256 => '0a2cdaef910c1154f1cd62c47db782dd7b66e2f0e9a8cdb9745f2516bbc7b707'
+ :http => 'https://github.com/braze-inc/braze-swift-sdk/releases/download/11.4.0/BrazeKit.zip',
+ :sha256 => '809ce3973f8ebfc65ddf5b7aac8785fb9b1507c2e15e1e64dea9b3f583bb5fa7'
}
s.swift_version = '5.0'
diff --git a/BrazeKitCompat.podspec b/BrazeKitCompat.podspec
index 21f2df7180..60422a2a14 100644
--- a/BrazeKitCompat.podspec
+++ b/BrazeKitCompat.podspec
@@ -1,6 +1,6 @@
Pod::Spec.new do |s|
s.name = 'BrazeKitCompat'
- s.version = '11.3.0'
+ s.version = '11.4.0'
s.summary = 'Compatibility library for users migrating from AppboyKit.'
s.homepage = 'https://braze.com'
@@ -8,7 +8,7 @@ Pod::Spec.new do |s|
s.license = { :type => 'Commercial' }
s.authors = 'Braze, Inc.'
- s.source = { :git => 'https://github.com/braze-inc/braze-swift-sdk.git', :tag => '11.3.0' }
+ s.source = { :git => 'https://github.com/braze-inc/braze-swift-sdk.git', :tag => '11.4.0' }
s.swift_version = '5.0'
s.ios.deployment_target = '12.0'
@@ -18,8 +18,8 @@ Pod::Spec.new do |s|
s.public_header_files = 'Sources/BrazeKitCompat/include/*.h'
s.static_framework = true
- s.dependency 'BrazeKit', '11.3.0'
- s.dependency 'BrazeLocation', '11.3.0'
+ s.dependency 'BrazeKit', '11.4.0'
+ s.dependency 'BrazeLocation', '11.4.0'
s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES' }
end
diff --git a/BrazeLocation.podspec b/BrazeLocation.podspec
index c238d224d1..e9fa22600d 100644
--- a/BrazeLocation.podspec
+++ b/BrazeLocation.podspec
@@ -1,6 +1,6 @@
Pod::Spec.new do |s|
s.name = 'BrazeLocation'
- s.version = '11.3.0'
+ s.version = '11.4.0'
s.summary = 'Braze location library providing support for location analytics and geofence monitoring.'
s.homepage = 'https://braze.com'
@@ -9,8 +9,8 @@ Pod::Spec.new do |s|
s.authors = 'Braze, Inc.'
s.source = {
- :http => 'https://github.com/braze-inc/braze-swift-sdk/releases/download/11.3.0/BrazeLocation.zip',
- :sha256 => 'ca6f518ca8017d11584c0897a701f52f20620b508208d6da68447d4e40a38ffa'
+ :http => 'https://github.com/braze-inc/braze-swift-sdk/releases/download/11.4.0/BrazeLocation.zip',
+ :sha256 => 'f957e6fb75ded976f7de565b4be0420d3c2912d4261f436e87ce353fc0b6b752'
}
s.swift_version = '5.0'
@@ -21,7 +21,7 @@ Pod::Spec.new do |s|
s.vendored_framework = 'BrazeLocation.xcframework'
s.resource_bundles = { 'BrazeLocation' => ['Sources/BrazeLocationResources/Resources/**/*'] }
- s.dependency 'BrazeKit', '11.3.0'
+ s.dependency 'BrazeKit', '11.4.0'
s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES' }
end
diff --git a/BrazeNotificationService.podspec b/BrazeNotificationService.podspec
index 681a9ca188..b76a7f96dd 100644
--- a/BrazeNotificationService.podspec
+++ b/BrazeNotificationService.podspec
@@ -1,6 +1,6 @@
Pod::Spec.new do |s|
s.name = 'BrazeNotificationService'
- s.version = '11.3.0'
+ s.version = '11.4.0'
s.summary = 'Braze notification service extension library providing support for Rich Push notifications.'
s.homepage = 'https://braze.com'
@@ -9,8 +9,8 @@ Pod::Spec.new do |s|
s.authors = 'Braze, Inc.'
s.source = {
- :http => 'https://github.com/braze-inc/braze-swift-sdk/releases/download/11.3.0/BrazeNotificationService.zip',
- :sha256 => '491f300cd9d69e00050b0480dd096a9fac742cebbf2f024fc0b5535a88e8d19c'
+ :http => 'https://github.com/braze-inc/braze-swift-sdk/releases/download/11.4.0/BrazeNotificationService.zip',
+ :sha256 => '6804bfaf9c5efe55c109a6d63be264f9abc83acd8484718f9ddaef344f1371bf'
}
s.swift_version = '5.0'
diff --git a/BrazePushStory.podspec b/BrazePushStory.podspec
index f9f921437e..e6b898cea7 100644
--- a/BrazePushStory.podspec
+++ b/BrazePushStory.podspec
@@ -1,6 +1,6 @@
Pod::Spec.new do |s|
s.name = 'BrazePushStory'
- s.version = '11.3.0'
+ s.version = '11.4.0'
s.summary = 'Braze notification content extension library providing support for Push Stories.'
s.homepage = 'https://braze.com'
@@ -9,8 +9,8 @@ Pod::Spec.new do |s|
s.authors = 'Braze, Inc.'
s.source = {
- :http => 'https://github.com/braze-inc/braze-swift-sdk/releases/download/11.3.0/BrazePushStory.zip',
- :sha256 => '13ad2cee5f3ae70ee581f257b64dae0010c849370004a979cbe2d7b3b481efda'
+ :http => 'https://github.com/braze-inc/braze-swift-sdk/releases/download/11.4.0/BrazePushStory.zip',
+ :sha256 => '2e945d6f17812202a951a8598071c278acf6d2a9962e49abb27a8134a28e7ae0'
}
s.swift_version = '5.0'
diff --git a/BrazeUI.podspec b/BrazeUI.podspec
index 7ae554d1ae..b530aba127 100644
--- a/BrazeUI.podspec
+++ b/BrazeUI.podspec
@@ -1,6 +1,6 @@
Pod::Spec.new do |s|
s.name = 'BrazeUI'
- s.version = '11.3.0'
+ s.version = '11.4.0'
s.summary = 'Braze-provided user interface library for In-App Messages and Content Cards.'
s.homepage = 'https://braze.com'
@@ -8,7 +8,7 @@ Pod::Spec.new do |s|
s.license = { :type => 'Commercial' }
s.authors = 'Braze, Inc.'
- s.source = { :git => 'https://github.com/braze-inc/braze-swift-sdk.git', :tag => '11.3.0' }
+ s.source = { :git => 'https://github.com/braze-inc/braze-swift-sdk.git', :tag => '11.4.0' }
s.swift_version = '5.0'
s.ios.deployment_target = '12.0'
@@ -18,7 +18,7 @@ Pod::Spec.new do |s|
s.resource_bundles = { 'BrazeUI' => ['Sources/BrazeUI/Resources/**/*'] }
s.static_framework = true
- s.dependency 'BrazeKit', '11.3.0'
+ s.dependency 'BrazeKit', '11.4.0'
s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES' }
end
diff --git a/BrazeUICompat.podspec b/BrazeUICompat.podspec
index 6fd9280af3..184a762fa4 100644
--- a/BrazeUICompat.podspec
+++ b/BrazeUICompat.podspec
@@ -1,6 +1,6 @@
Pod::Spec.new do |s|
s.name = 'BrazeUICompat'
- s.version = '11.3.0'
+ s.version = '11.4.0'
s.summary = 'Compatibility UI library for users migrating from AppboyUI.'
s.homepage = 'https://braze.com'
@@ -8,7 +8,7 @@ Pod::Spec.new do |s|
s.license = { :type => 'Commercial' }
s.authors = 'Braze, Inc.'
- s.source = { :git => 'https://github.com/braze-inc/braze-swift-sdk.git', :tag => '11.3.0' }
+ s.source = { :git => 'https://github.com/braze-inc/braze-swift-sdk.git', :tag => '11.4.0' }
s.swift_version = '5.0'
s.ios.deployment_target = '12.0'
@@ -18,7 +18,7 @@ Pod::Spec.new do |s|
s.resource_bundles = { 'BrazeUICompat' => 'Sources/BrazeUICompat/*/Resources/**/*.*' }
s.static_framework = true
- s.dependency 'BrazeKitCompat', '11.3.0'
+ s.dependency 'BrazeKitCompat', '11.4.0'
s.dependency 'SDWebImage', '>= 5.19.7', '< 6'
s.user_target_xcconfig = { 'CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES' => 'YES' }
diff --git a/CHANGELOG.md b/CHANGELOG.md
index c4ee5ac200..3ff762b4f7 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,15 @@
+## 11.4.0
+
+##### Fixed
+- Fixes an issue where the SDK could hang during initialization if previous sessions generated a large number of geofence refreshes. This hang could sometimes lead to a crash by blocking the main thread for an extended period.
+- Fixes an issue where the triggering of in-app messages could be delayed in cases where requests for updated in-app message triggers are also delayed due to rate limiting.
+- Adds additional safeguards to ensure that ongoing network requests are dropped when changing users mid-flight.
+
+##### Added
+- When Content Cards, Feature Flags, or Banner Cards go from enabled to disabled, the stored data is removed from cache.
+- Adds [`banner.trackingId`](https://braze-inc.github.io/braze-swift-sdk/documentation/brazekit/braze/banner/trackingid) to distinguish between banner objects.
+ - Deprecates `banner.id` in favor of `banner.trackingId`.
+
## 11.3.0
##### Fixed
@@ -38,6 +50,11 @@
##### Added
- Adds a public initializer for `Braze.Notifications.Payload`.
+## 11.0.1
+
+##### Fixed
+- Fixes an issue introduced in `11.0.0` where the push subscription status would be sent to the backend with an inaccurate value at startup, causing an unexpected subscription state. The SDK now sends up the accurate subscription status at each startup.
+
## 11.0.0
⚠️ **Important:** This version has a known issue related to push subscription status. Upgrade to version `11.1.1` instead.
diff --git a/Examples/ObjC/Examples-SwiftPM.xcodeproj/project.pbxproj b/Examples/ObjC/Examples-SwiftPM.xcodeproj/project.pbxproj
index 088e82f1fe..5f0255ac4e 100644
--- a/Examples/ObjC/Examples-SwiftPM.xcodeproj/project.pbxproj
+++ b/Examples/ObjC/Examples-SwiftPM.xcodeproj/project.pbxproj
@@ -1032,7 +1032,7 @@
mainGroup = D8CC2266D736859D7DD9A8FF;
packageReferences = (
9928D5150C45879A982BA1C6 /* XCRemoteSwiftPackageReference "SDWebImage" */,
- 90D8318C2DB3CED6610DD38C /* XCLocalSwiftPackageReference "/Users/jerielng/swift-sdk/.build/braze/release/braze-swift-sdk" */,
+ 6764A035A4A67CE751802C3E /* XCLocalSwiftPackageReference "/Users/louis.bur/Developer/swift-sdk/.build/braze/release/braze-swift-sdk" */,
);
projectDirPath = "";
projectRoot = "";
@@ -2269,9 +2269,9 @@
/* End XCRemoteSwiftPackageReference section */
/* Begin XCLocalSwiftPackageReference section */
- 90D8318C2DB3CED6610DD38C /* XCLocalSwiftPackageReference "/Users/jerielng/swift-sdk/.build/braze/release/braze-swift-sdk" */ = {
+ 6764A035A4A67CE751802C3E /* XCLocalSwiftPackageReference "/Users/louis.bur/Developer/swift-sdk/.build/braze/release/braze-swift-sdk" */ = {
isa = XCLocalSwiftPackageReference;
- relativePath = "/Users/jerielng/swift-sdk/.build/braze/release/braze-swift-sdk";
+ relativePath = "/Users/louis.bur/Developer/swift-sdk/.build/braze/release/braze-swift-sdk";
};
/* End XCLocalSwiftPackageReference section */
diff --git a/Examples/ObjC/Sources/Location/Info.plist b/Examples/ObjC/Sources/Location/Info.plist
index 71c36b3686..28280ebd45 100644
--- a/Examples/ObjC/Sources/Location/Info.plist
+++ b/Examples/ObjC/Sources/Location/Info.plist
@@ -24,6 +24,10 @@
-
+
{
get { lock.sync { _trackedBanners } }
set { lock.sync { _trackedBanners = newValue } }
@@ -50,7 +50,7 @@ extension BrazeBannerUI {
}
private var _sessionSubscriber: Braze.Cancellable?
- /// The banner IDs that have been viewed this session.
+ /// The banner tracking IDs that have been viewed this session.
var viewedInSessionBanners: Set