diff --git a/BrazeKit.podspec b/BrazeKit.podspec
index 9ab173ec51..3b0c874f2e 100644
--- a/BrazeKit.podspec
+++ b/BrazeKit.podspec
@@ -1,6 +1,6 @@
Pod::Spec.new do |s|
s.name = 'BrazeKit'
- s.version = '7.0.0'
+ s.version = '7.1.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/7.0.0/BrazeKit.zip',
- :sha256 => 'ae890a450e889ad57399b36835af98699defc02da2fff9bd1756b8963d545eb5'
+ :http => 'https://github.com/braze-inc/braze-swift-sdk/releases/download/7.1.0/BrazeKit.zip',
+ :sha256 => '195f3f728352a8fb507256042be3cb4efc9bd46afb76d57353e5951ed501d267'
}
s.swift_version = '5.0'
diff --git a/BrazeKitCompat.podspec b/BrazeKitCompat.podspec
index 42478b0ef5..5ad7c2c02f 100644
--- a/BrazeKitCompat.podspec
+++ b/BrazeKitCompat.podspec
@@ -1,6 +1,6 @@
Pod::Spec.new do |s|
s.name = 'BrazeKitCompat'
- s.version = '7.0.0'
+ s.version = '7.1.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 => '7.0.0' }
+ s.source = { :git => 'https://github.com/braze-inc/braze-swift-sdk.git', :tag => '7.1.0' }
s.swift_version = '5.0'
s.ios.deployment_target = '11.0'
@@ -18,8 +18,8 @@ Pod::Spec.new do |s|
s.source_files = 'Sources/BrazeKitCompat/**/*.{h,m}'
s.public_header_files = 'Sources/BrazeKitCompat/include/*.h'
- s.dependency 'BrazeKit', '7.0.0'
- s.dependency 'BrazeLocation', '7.0.0'
+ s.dependency 'BrazeKit', '7.1.0'
+ s.dependency 'BrazeLocation', '7.1.0'
s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES' }
end
diff --git a/BrazeLocation.podspec b/BrazeLocation.podspec
index 4111030004..0fcd0a9ab7 100644
--- a/BrazeLocation.podspec
+++ b/BrazeLocation.podspec
@@ -1,6 +1,6 @@
Pod::Spec.new do |s|
s.name = 'BrazeLocation'
- s.version = '7.0.0'
+ s.version = '7.1.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/7.0.0/BrazeLocation.zip',
- :sha256 => 'eb32a3834e0dc09df3c069647b6ac1e1fbce5cb1fed49050325277e12c7773cd'
+ :http => 'https://github.com/braze-inc/braze-swift-sdk/releases/download/7.1.0/BrazeLocation.zip',
+ :sha256 => '9ce1f72d725cb37b4c509fc84766e6eaf07429bce4e7164481833843003c2987'
}
s.swift_version = '5.0'
@@ -21,7 +21,7 @@ Pod::Spec.new do |s|
# Depends on BrazeKit because BrazeKit includes the internal _BrazeLocationClient symbols required
# for linking against BrazeLocation.
- s.dependency 'BrazeKit', '7.0.0'
+ s.dependency 'BrazeKit', '7.1.0'
s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES' }
end
diff --git a/BrazeNotificationService.podspec b/BrazeNotificationService.podspec
index 276e5ff558..c1f6ff96ea 100644
--- a/BrazeNotificationService.podspec
+++ b/BrazeNotificationService.podspec
@@ -1,6 +1,6 @@
Pod::Spec.new do |s|
s.name = 'BrazeNotificationService'
- s.version = '7.0.0'
+ s.version = '7.1.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/7.0.0/BrazeNotificationService.zip',
- :sha256 => 'ebf1ca2501212501853662a3853b498063a3f2b46ae2de072262666c4f731e24'
+ :http => 'https://github.com/braze-inc/braze-swift-sdk/releases/download/7.1.0/BrazeNotificationService.zip',
+ :sha256 => 'e80f97bb21bc9f661471205c18f8f873f274bc3cad73b2eb44e4f1f66f05dd10'
}
s.swift_version = '5.0'
diff --git a/BrazePushStory.podspec b/BrazePushStory.podspec
index 1b9581a4a5..181036ffb8 100644
--- a/BrazePushStory.podspec
+++ b/BrazePushStory.podspec
@@ -1,6 +1,6 @@
Pod::Spec.new do |s|
s.name = 'BrazePushStory'
- s.version = '7.0.0'
+ s.version = '7.1.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/7.0.0/BrazePushStory.zip',
- :sha256 => '26e3ff1284d14a2d2c7c9d02ee08745bc0babd662ed5067b306ff8aa90d4bb3d'
+ :http => 'https://github.com/braze-inc/braze-swift-sdk/releases/download/7.1.0/BrazePushStory.zip',
+ :sha256 => '4ad33d8106c285b3e33c274cfee112542a489abf8284eff330dab12c49766c16'
}
s.swift_version = '5.0'
diff --git a/BrazeUI.podspec b/BrazeUI.podspec
index 437f4ac356..ddaade765b 100644
--- a/BrazeUI.podspec
+++ b/BrazeUI.podspec
@@ -1,6 +1,6 @@
Pod::Spec.new do |s|
s.name = 'BrazeUI'
- s.version = '7.0.0'
+ s.version = '7.1.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 => '7.0.0' }
+ s.source = { :git => 'https://github.com/braze-inc/braze-swift-sdk.git', :tag => '7.1.0' }
s.swift_version = '5.0'
s.ios.deployment_target = '11.0'
@@ -17,7 +17,7 @@ Pod::Spec.new do |s|
s.source_files = 'Sources/BrazeUI/**/*.swift'
s.resource_bundles = { 'BrazeUI' => ['Sources/BrazeUI/Resources/**/*'] }
- s.dependency 'BrazeKit', '7.0.0'
+ s.dependency 'BrazeKit', '7.1.0'
s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES' }
end
diff --git a/BrazeUICompat.podspec b/BrazeUICompat.podspec
index 3a42ec27fa..416c1f1472 100644
--- a/BrazeUICompat.podspec
+++ b/BrazeUICompat.podspec
@@ -1,6 +1,6 @@
Pod::Spec.new do |s|
s.name = 'BrazeUICompat'
- s.version = '7.0.0'
+ s.version = '7.1.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 => '7.0.0' }
+ s.source = { :git => 'https://github.com/braze-inc/braze-swift-sdk.git', :tag => '7.1.0' }
s.swift_version = '5.0'
s.ios.deployment_target = '11.0'
@@ -18,7 +18,7 @@ Pod::Spec.new do |s|
s.public_header_files = 'Sources/BrazeUICompat/ABK*/**/*.h'
s.resource_bundles = { 'BrazeUICompat' => 'Sources/BrazeUICompat/*/Resources/**/*.*' }
- s.dependency 'BrazeKitCompat', '7.0.0'
+ s.dependency 'BrazeKitCompat', '7.1.0'
s.dependency 'SDWebImage', '>= 5.8.2', '< 6'
s.user_target_xcconfig = { 'CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES' => 'YES' }
diff --git a/CHANGELOG.md b/CHANGELOG.md
index f50c75dd6f..968feb868a 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,8 +1,20 @@
+## 7.1.0
+
+##### Fixed
+- Resolves an issue preventing templated in-app messages from triggering if a previous attempt to display the message failed within the same session.
+- Fixes an issue that prevented custom events and nested custom attributes from logging if had a property with a value that was prefixed with a `$`.
+- Fixes a bug in the Content Cards feed UI where the empty feed message would not display when the user only had control cards in their feed.
+- Adds additional safeguards when reading the device model.
+
+##### Added
+- Adds a code signature to all XCFrameworks in the Braze Swift SDK, signed by `Braze, Inc.`.
+- `BrazeInAppMessageUI.DisplayChoice.later` has been deprecated in favor of `BrazeInAppMessageUI.DisplayChoice.reenqueue`.
+
## 7.0.0
##### Breaking
- The `useUUIDAsDeviceId` configuration is now enabled by default.
- - For more details on the impacts, refer to this [Collecting IDFV - Swift](https://www.braze.com/docs/developer_guide/platform_integration_guides/ios/initial_sdk_setup/other_sdk_customizations/swift_idfv/).
+ - For more details on the impacts, refer to this [Collecting IDFV - Swift](https://www.braze.com/docs/developer_guide/platform_integration_guides/swift/analytics/swift_idfv/).
- The `Banner` Content Card type and corresponding UI elements have been renamed to `ImageOnly`. All member methods and properties remain the same.
- `Braze.ContentCard.Banner` → `Braze.ContentCard.ImageOnly`
- `BrazeContentCardUI.BannerCell` → `BrazeContentCardUI.ImageOnlyCell`
@@ -10,12 +22,13 @@
- Updates the behavior for Feature Flags methods.
- `FeatureFlags.featureFlag(id:)` now returns `nil` for an ID that does not exist.
- `FeatureFlags.subscribeToUpdates(:)` will trigger the callback when any refresh request completes with a success or failure.
- - The callback will also trigger immediately upon initial subscription if previously cached data exists.
+ - The callback will also trigger immediately upon initial subscription if previously cached data exists from the current session.
##### Fixed
- Fixes compiler warnings about Swift 6 when compiling `BrazeUI` while using Xcode 15.
- Exposes public imports for `ABKClassicImageContentCardCell.h` and `ABKControlTableViewCell.h` for use in the BrazeUICompat layer.
-- Adds additional safeguards around invalid constraint values for `BrazeInAppMessageUI.SlideupView`
+- Adds additional safeguards around invalid constraint values for `BrazeInAppMessageUI.SlideupView`.
+- Resolves a Content Cards feed UI issue displaying a placeholder image in Classic cards without an attached image.
##### Added
- Adds the `enableDarkTheme` property to `BrazeContentCardUI.ViewController.Attributes`.
diff --git a/Examples/ObjC/Sources/PushNotifications/Info.plist b/Examples/ObjC/Sources/PushNotifications/Info.plist
new file mode 100644
index 0000000000..d7f8ec8ca2
--- /dev/null
+++ b/Examples/ObjC/Sources/PushNotifications/Info.plist
@@ -0,0 +1,30 @@
+
+
+