diff --git a/BrazeKit.podspec b/BrazeKit.podspec index e9ee761..a1aabc7 100644 --- a/BrazeKit.podspec +++ b/BrazeKit.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'BrazeKit' - s.version = '9.3.1' + s.version = '10.0.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-prebuilt-mergeable/releases/download/9.3.1/BrazeKit.zip', - :sha256 => 'aa031fcdf73973225e363c500ab5d87745e1ad9e532c0670a5081db75ae865c0' + :http => 'https://github.com/braze-inc/braze-swift-sdk-prebuilt-mergeable/releases/download/10.0.0/BrazeKit.zip', + :sha256 => 'f4f441f0c505061ae766f034a504317c8bd0c19606ab3cfaec66c06485e448e4' } s.swift_version = '5.0' diff --git a/BrazeKitCompat.podspec b/BrazeKitCompat.podspec index eaaa5d3..0850f9a 100644 --- a/BrazeKitCompat.podspec +++ b/BrazeKitCompat.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'BrazeKitCompat' - s.version = '9.3.1' + s.version = '10.0.0' s.summary = 'Compatibility library for users migrating from AppboyKit.' 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-prebuilt-mergeable/releases/download/9.3.1/BrazeKitCompat.zip', - :sha256 => 'efd9c9337787bad7a0040535d30e536af071d2bb9ffd03f3e19075ac2aea2d6b' + :http => 'https://github.com/braze-inc/braze-swift-sdk-prebuilt-mergeable/releases/download/10.0.0/BrazeKitCompat.zip', + :sha256 => '4ed6785e7e0080399e2427336afd3cb529646d2637c1da78e999b67069f4ca88' } s.swift_version = '5.0' @@ -19,8 +19,8 @@ Pod::Spec.new do |s| s.vendored_framework = 'BrazeKitCompat.xcframework' - s.dependency 'BrazeKit', '9.3.1' - s.dependency 'BrazeLocation', '9.3.1' + s.dependency 'BrazeKit', '10.0.0' + s.dependency 'BrazeLocation', '10.0.0' s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES' } end diff --git a/BrazeLocation.podspec b/BrazeLocation.podspec index b16e323..ade9e9c 100644 --- a/BrazeLocation.podspec +++ b/BrazeLocation.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'BrazeLocation' - s.version = '9.3.1' + s.version = '10.0.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-prebuilt-mergeable/releases/download/9.3.1/BrazeLocation.zip', - :sha256 => '9c08312c7998b277edf51373c5dd8e4c20deb040cbf3da524cddc276d140793f' + :http => 'https://github.com/braze-inc/braze-swift-sdk-prebuilt-mergeable/releases/download/10.0.0/BrazeLocation.zip', + :sha256 => '279616344afd027fb45703748d67ad1a324c512cf17cb553ed2628bb966743c4' } s.swift_version = '5.0' @@ -20,7 +20,7 @@ Pod::Spec.new do |s| s.vendored_framework = 'BrazeLocation.xcframework' - s.dependency 'BrazeKit', '9.3.1' + s.dependency 'BrazeKit', '10.0.0' s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES' } end diff --git a/BrazeNotificationService.podspec b/BrazeNotificationService.podspec index 9cb4a85..bd18001 100644 --- a/BrazeNotificationService.podspec +++ b/BrazeNotificationService.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'BrazeNotificationService' - s.version = '9.3.1' + s.version = '10.0.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-prebuilt-mergeable/releases/download/9.3.1/BrazeNotificationService.zip', - :sha256 => '7f1c3bfe80ddcf59d2016e57930a19928771ea919b368dd61b2242b3779dbc96' + :http => 'https://github.com/braze-inc/braze-swift-sdk-prebuilt-mergeable/releases/download/10.0.0/BrazeNotificationService.zip', + :sha256 => '65a702eebeb48445b60a21e10321f17e0025ecb605e1b1f03183c90d9c1e60db' } s.swift_version = '5.0' diff --git a/BrazePushStory.podspec b/BrazePushStory.podspec index edca0cb..beee2b1 100644 --- a/BrazePushStory.podspec +++ b/BrazePushStory.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'BrazePushStory' - s.version = '9.3.1' + s.version = '10.0.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-prebuilt-mergeable/releases/download/9.3.1/BrazePushStory.zip', - :sha256 => '2ba0a6641eff1ff4f3aa1e6d13d7887118bc99d5b122a00f8d7de254b9b07f15' + :http => 'https://github.com/braze-inc/braze-swift-sdk-prebuilt-mergeable/releases/download/10.0.0/BrazePushStory.zip', + :sha256 => '0c6e4e01c43101c0a2778e8b405cfba8b1a9bd7b54f96e991075e3e663d1009d' } s.swift_version = '5.0' diff --git a/BrazeUI.podspec b/BrazeUI.podspec index e1c3f53..7e7e613 100644 --- a/BrazeUI.podspec +++ b/BrazeUI.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'BrazeUI' - s.version = '9.3.1' + s.version = '10.0.0' s.summary = 'Braze-provided user interface library for In-App Messages and Content Cards.' 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-prebuilt-mergeable/releases/download/9.3.1/BrazeUI.zip', - :sha256 => '27b82d749fe5c078767fa69f4814c79667559fc55153ef7b99ef078a8c794c3f' + :http => 'https://github.com/braze-inc/braze-swift-sdk-prebuilt-mergeable/releases/download/10.0.0/BrazeUI.zip', + :sha256 => 'd9f9d081d433fe5cbd8c13aea75ae373e7a74939692cfd3b4ab133a612f76377' } s.swift_version = '5.0' @@ -19,7 +19,7 @@ Pod::Spec.new do |s| s.vendored_framework = 'BrazeUI.xcframework' - s.dependency 'BrazeKit', '9.3.1' + s.dependency 'BrazeKit', '10.0.0' s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES' } end diff --git a/BrazeUICompat.podspec b/BrazeUICompat.podspec index 5bca73c..1522222 100644 --- a/BrazeUICompat.podspec +++ b/BrazeUICompat.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'BrazeUICompat' - s.version = '9.3.1' + s.version = '10.0.0' s.summary = 'Compatibility UI library for users migrating from AppboyUI.' 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-prebuilt-mergeable/releases/download/9.3.1/BrazeUICompat.zip', - :sha256 => 'fcd8b5a346222cb06541c744d88bdf00325db3994bbe70c4300af43165cc50cb' + :http => 'https://github.com/braze-inc/braze-swift-sdk-prebuilt-mergeable/releases/download/10.0.0/BrazeUICompat.zip', + :sha256 => 'aab87d10ede7973f4e38868a3a56d463f73810aa1e33a950113ebb74ea851773' } s.swift_version = '5.0' @@ -18,7 +18,7 @@ Pod::Spec.new do |s| s.vendored_framework = 'BrazeUICompat.xcframework' - s.dependency 'BrazeKitCompat', '9.3.1' + s.dependency 'BrazeKitCompat', '10.0.0' s.dependency 'SDWebImage', '>= 5.19.0', '< 6' s.user_target_xcconfig = { 'CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES' => 'YES' } diff --git a/CHANGELOG.md b/CHANGELOG.md index c3e408e..5bd3ca7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,57 @@ +## 10.0.0 + +##### Breaking +- The following changes have been made when subscribing to Push events with [`Braze.Notifications.subscribeToUpdates(payloadTypes:_:)`][push-subscribe]: + - The `update` closure will now be triggered by both "Push Opened" and "Push Received" events by default. Previously, it would only be triggered by "Push Opened" events. + - To continue subscribing only to "Push Opened" events, pass in `[.opened]` for the parameter `payloadTypes`. Alternatively, implement your `update` closure to check that the `type` from the `Braze.Notifications.Payload` is `.opened`. + - When receiving a push notification with `content-available: true`, the [`Braze.Notifications.Payload.type`][payload-type] will now be `.received` instead of `.opened`. +- Marks the following deprecated APIs as unavailable: + - `Braze.Configuration.Api.Flavor` + - `Braze.Configuration.Api.flavor` + - `Braze.Configuration.Api.SdkMetadata` + - `Braze.Configuration.Api.addSdkMetadata(_:)` + - `Braze.ContentCard.ClickAction.uri(_:useWebview:)` + - `Braze.ContentCard.ClickAction.uri` + - `Braze.InAppMessage.ClickAction.uri(_:useWebview:)` + - `Braze.InAppMessage.ClickAction.uri` + - `Braze.InAppMessage.ModalImage.imageUri` + - `Braze.InAppMessage.Full.imageUri` + - `Braze.InAppMessage.FullImage.imageUri` + - `Braze.InAppMessage.Themes.default` + - `Braze.deviceId(queue:completion:)` + - `Braze._objc_deviceId(completion:)` + - `Braze.deviceId()` + - `Braze.User.setCustomAttributeArray(key:array:fileID:line:)` + - `Braze.User.addToCustomAttributeArray(key:value:fileID:line:)` + - `Braze.User.removeFromCustomAttributeArray(key:value:fileID:line:)` + - `Braze.User._objc_addToCustomAttributeArray(key:value:)` + - `Braze.User._objc_removeFromCustomAttributeArray(key:value:)` + - `gifViewProvider` + - `GifViewProvider.default` +- Removes the deprecated APIs: + - `Braze.Configuration.DeviceProperty.pushDisplayOptions` + - `Braze.InAppMessageRaw.Context.Error.extraProcessClickAction` +- Removes the deprecated `BrazeLocation` class in favor of `BrazeLocationProvider`. + +##### Fixed +- Fixes a crash when handling a scheme-based deep link containing a registered `applink` domain (e.g. `applinks:example.com` with a deep link to `app://example.com/path`). + +##### Added +- Adds support to subscribe to "Push Received" events via [`Braze.Notifications.subscribeToUpdates(payloadTypes:_:)`][push-subscribe]. + - The following notifications will trigger this subscription: + - Notifications received in the foreground + - Notifications with the field `content-available: true` received in the foreground or background + - The following notifications will _not_ trigger this subscription: + - Notifications received while terminated + - Notifications received in the background without the field `content-available: true` + - The new parameter `payloadTypes` will allow you to subscribe to "Push Opened" events, "Push Received" events, or both. If the parameter is omitted, it will subscribe to both by default. + - If you are using manual push integration, you will need to first implement `UNUserNotificationCenter.userNotificationCenter(_:willPresent:withCompletionHandler:)`, and make sure to call `Braze.Notifications.handleForegroundNotification(notification:)` within your implementation. Then, use `subscribeToUpdates` as noted above. See [our guide on push notification integration](https://www.braze.com/docs/developer_guide/platform_integration_guides/swift/push_notifications/integration/#step-3-enable-push-handling) for more info. +- Adds the public property [`Braze.Notifications.Payload.type`][payload-type]. +- Adds the [`Braze.WebViewBridge.ScriptMessageHandler.init(braze:)`](https://braze-inc.github.io/braze-swift-sdk/documentation/brazekit/braze/webviewbridge/scriptmessagehandler/init(braze:)) initializer enabling a simpler way to initialize the `ScriptMessageHandler` for adding it to user-provided web views. + +[push-subscribe]: https://braze-inc.github.io/braze-swift-sdk/documentation/brazekit/braze/notifications-swift.class/subscribetoupdates(payloadtypes:_:) +[payload-type]: https://braze-inc.github.io/braze-swift-sdk/documentation/brazekit/braze/notifications-swift.class/payload/type + ## 9.3.1 ##### Fixed diff --git a/Package.swift b/Package.swift index fd7278b..5fb5988 100644 --- a/Package.swift +++ b/Package.swift @@ -49,38 +49,38 @@ let package = Package( targets: [ .binaryTarget( name: "BrazeKit", - url: "https://github.com/braze-inc/braze-swift-sdk-prebuilt-mergeable/releases/download/9.3.1/BrazeKit.zip", - checksum: "aa031fcdf73973225e363c500ab5d87745e1ad9e532c0670a5081db75ae865c0" + url: "https://github.com/braze-inc/braze-swift-sdk-prebuilt-mergeable/releases/download/10.0.0/BrazeKit.zip", + checksum: "f4f441f0c505061ae766f034a504317c8bd0c19606ab3cfaec66c06485e448e4" ), .binaryTarget( name: "BrazeUI", - url: "https://github.com/braze-inc/braze-swift-sdk-prebuilt-mergeable/releases/download/9.3.1/BrazeUI.zip", - checksum: "27b82d749fe5c078767fa69f4814c79667559fc55153ef7b99ef078a8c794c3f" + url: "https://github.com/braze-inc/braze-swift-sdk-prebuilt-mergeable/releases/download/10.0.0/BrazeUI.zip", + checksum: "d9f9d081d433fe5cbd8c13aea75ae373e7a74939692cfd3b4ab133a612f76377" ), .binaryTarget( name: "BrazeLocation", - url: "https://github.com/braze-inc/braze-swift-sdk-prebuilt-mergeable/releases/download/9.3.1/BrazeLocation.zip", - checksum: "9c08312c7998b277edf51373c5dd8e4c20deb040cbf3da524cddc276d140793f" + url: "https://github.com/braze-inc/braze-swift-sdk-prebuilt-mergeable/releases/download/10.0.0/BrazeLocation.zip", + checksum: "279616344afd027fb45703748d67ad1a324c512cf17cb553ed2628bb966743c4" ), .binaryTarget( name: "BrazeNotificationService", - url: "https://github.com/braze-inc/braze-swift-sdk-prebuilt-mergeable/releases/download/9.3.1/BrazeNotificationService.zip", - checksum: "7f1c3bfe80ddcf59d2016e57930a19928771ea919b368dd61b2242b3779dbc96" + url: "https://github.com/braze-inc/braze-swift-sdk-prebuilt-mergeable/releases/download/10.0.0/BrazeNotificationService.zip", + checksum: "65a702eebeb48445b60a21e10321f17e0025ecb605e1b1f03183c90d9c1e60db" ), .binaryTarget( name: "BrazePushStory", - url: "https://github.com/braze-inc/braze-swift-sdk-prebuilt-mergeable/releases/download/9.3.1/BrazePushStory.zip", - checksum: "2ba0a6641eff1ff4f3aa1e6d13d7887118bc99d5b122a00f8d7de254b9b07f15" + url: "https://github.com/braze-inc/braze-swift-sdk-prebuilt-mergeable/releases/download/10.0.0/BrazePushStory.zip", + checksum: "0c6e4e01c43101c0a2778e8b405cfba8b1a9bd7b54f96e991075e3e663d1009d" ), .binaryTarget( name: "BrazeKitCompat", - url: "https://github.com/braze-inc/braze-swift-sdk-prebuilt-mergeable/releases/download/9.3.1/BrazeKitCompat.zip", - checksum: "efd9c9337787bad7a0040535d30e536af071d2bb9ffd03f3e19075ac2aea2d6b" + url: "https://github.com/braze-inc/braze-swift-sdk-prebuilt-mergeable/releases/download/10.0.0/BrazeKitCompat.zip", + checksum: "4ed6785e7e0080399e2427336afd3cb529646d2637c1da78e999b67069f4ca88" ), .binaryTarget( name: "BrazeUICompat", - url: "https://github.com/braze-inc/braze-swift-sdk-prebuilt-mergeable/releases/download/9.3.1/BrazeUICompat.zip", - checksum: "fcd8b5a346222cb06541c744d88bdf00325db3994bbe70c4300af43165cc50cb" + url: "https://github.com/braze-inc/braze-swift-sdk-prebuilt-mergeable/releases/download/10.0.0/BrazeUICompat.zip", + checksum: "aab87d10ede7973f4e38868a3a56d463f73810aa1e33a950113ebb74ea851773" ), ] ) diff --git a/README.md b/README.md index 93bc217..90d21c8 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@