Skip to content

Commit

Permalink
Version 7.4.0
Browse files Browse the repository at this point in the history
  • Loading branch information
jerielng committed Dec 12, 2023
1 parent d396349 commit 951d5e1
Show file tree
Hide file tree
Showing 20 changed files with 175 additions and 60 deletions.
6 changes: 3 additions & 3 deletions BrazeKit.podspec
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Pod::Spec.new do |s|
s.name = 'BrazeKit'
s.version = '7.3.0'
s.version = '7.4.0'
s.summary = 'Braze Main SDK library providing support for analytics and push notifications.'

s.homepage = 'https://braze.com'
Expand All @@ -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.3.0/BrazeKit.zip',
:sha256 => 'c98be52a7bfbb7ff4b122f532abd06676fe93b1935f91f9ca1e462765cc5cedf'
:http => 'https://github.com/braze-inc/braze-swift-sdk/releases/download/7.4.0/BrazeKit.zip',
:sha256 => 'e820bcb3f8fc85402f51b705ae1494c1d73d341fc16213ddc19039ff0996dd40'
}

s.swift_version = '5.0'
Expand Down
10 changes: 5 additions & 5 deletions BrazeKitCompat.podspec
Original file line number Diff line number Diff line change
@@ -1,25 +1,25 @@
Pod::Spec.new do |s|
s.name = 'BrazeKitCompat'
s.version = '7.3.0'
s.version = '7.4.0'
s.summary = 'Compatibility library for users migrating from AppboyKit.'

s.homepage = 'https://braze.com'
s.documentation_url = 'https://braze-inc.github.io/braze-swift-sdk/documentation/brazekitcompat/'
s.license = { :type => 'Commercial' }
s.authors = 'Braze, Inc.'

s.source = { :git => 'https://github.com/braze-inc/braze-swift-sdk.git', :tag => '7.3.0' }
s.source = { :git => 'https://github.com/braze-inc/braze-swift-sdk.git', :tag => '7.4.0' }

s.swift_version = '5.0'
s.ios.deployment_target = '11.0'
s.tvos.deployment_target = '11.0'
s.static_framework = true

s.source_files = 'Sources/BrazeKitCompat/**/*.{h,m}'
s.public_header_files = 'Sources/BrazeKitCompat/include/*.h'
s.static_framework = true

s.dependency 'BrazeKit', '7.3.0'
s.dependency 'BrazeLocation', '7.3.0'
s.dependency 'BrazeKit', '7.4.0'
s.dependency 'BrazeLocation', '7.4.0'

s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES' }
end
8 changes: 4 additions & 4 deletions BrazeLocation.podspec
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Pod::Spec.new do |s|
s.name = 'BrazeLocation'
s.version = '7.3.0'
s.version = '7.4.0'
s.summary = 'Braze location library providing support for location analytics and geofence monitoring.'

s.homepage = 'https://braze.com'
Expand All @@ -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.3.0/BrazeLocation.zip',
:sha256 => '7ab0ecdcb7fededd45ea4ebdedc6edfece3e8e097f105ee7d5da6fc7e258bc6b'
:http => 'https://github.com/braze-inc/braze-swift-sdk/releases/download/7.4.0/BrazeLocation.zip',
:sha256 => '233bf832190655a4e7e5ff19f7eddc98e872702ba20f7271eead268eef641425'
}

s.swift_version = '5.0'
Expand All @@ -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.3.0'
s.dependency 'BrazeKit', '7.4.0'

s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES' }
end
6 changes: 3 additions & 3 deletions BrazeNotificationService.podspec
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Pod::Spec.new do |s|
s.name = 'BrazeNotificationService'
s.version = '7.3.0'
s.version = '7.4.0'
s.summary = 'Braze notification service extension library providing support for Rich Push notifications.'

s.homepage = 'https://braze.com'
Expand All @@ -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.3.0/BrazeNotificationService.zip',
:sha256 => '80f1fe0afab3ebcebabe62c05db4fd444fc7a8c82f9b309e9217d02ab4aced98'
:http => 'https://github.com/braze-inc/braze-swift-sdk/releases/download/7.4.0/BrazeNotificationService.zip',
:sha256 => '5b9c974c5ed0b48ab1ba59f49dbf98f1c8e3e49959e844a46e0591365cf275d0'
}

s.swift_version = '5.0'
Expand Down
6 changes: 3 additions & 3 deletions BrazePushStory.podspec
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Pod::Spec.new do |s|
s.name = 'BrazePushStory'
s.version = '7.3.0'
s.version = '7.4.0'
s.summary = 'Braze notification content extension library providing support for Push Stories.'

s.homepage = 'https://braze.com'
Expand All @@ -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.3.0/BrazePushStory.zip',
:sha256 => '0c37ca728ba0a5798efd412f254c26827f63f21044642993a004d80c9866d510'
:http => 'https://github.com/braze-inc/braze-swift-sdk/releases/download/7.4.0/BrazePushStory.zip',
:sha256 => '3b1b1bf392284755f8b9b00857d9d70cf3c39912b72921617f6f8db910b113e7'
}

s.swift_version = '5.0'
Expand Down
8 changes: 4 additions & 4 deletions BrazeUI.podspec
Original file line number Diff line number Diff line change
@@ -1,23 +1,23 @@
Pod::Spec.new do |s|
s.name = 'BrazeUI'
s.version = '7.3.0'
s.version = '7.4.0'
s.summary = 'Braze-provided user interface library for In-App Messages and Content Cards.'

s.homepage = 'https://braze.com'
s.documentation_url = 'https://braze-inc.github.io/braze-swift-sdk/documentation/brazeui/'
s.license = { :type => 'Commercial' }
s.authors = 'Braze, Inc.'

s.source = { :git => 'https://github.com/braze-inc/braze-swift-sdk.git', :tag => '7.3.0' }
s.source = { :git => 'https://github.com/braze-inc/braze-swift-sdk.git', :tag => '7.4.0' }

s.swift_version = '5.0'
s.ios.deployment_target = '11.0'
s.static_framework = true

s.source_files = 'Sources/BrazeUI/**/*.swift'
s.resource_bundles = { 'BrazeUI' => ['Sources/BrazeUI/Resources/**/*'] }
s.static_framework = true

s.dependency 'BrazeKit', '7.3.0'
s.dependency 'BrazeKit', '7.4.0'

s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES' }
end
8 changes: 4 additions & 4 deletions BrazeUICompat.podspec
Original file line number Diff line number Diff line change
@@ -1,24 +1,24 @@
Pod::Spec.new do |s|
s.name = 'BrazeUICompat'
s.version = '7.3.0'
s.version = '7.4.0'
s.summary = 'Compatibility UI library for users migrating from AppboyUI.'

s.homepage = 'https://braze.com'
s.documentation_url = 'https://braze-inc.github.io/braze-swift-sdk/documentation/brazeui/'
s.license = { :type => 'Commercial' }
s.authors = 'Braze, Inc.'

s.source = { :git => 'https://github.com/braze-inc/braze-swift-sdk.git', :tag => '7.3.0' }
s.source = { :git => 'https://github.com/braze-inc/braze-swift-sdk.git', :tag => '7.4.0' }

s.swift_version = '5.0'
s.ios.deployment_target = '11.0'
s.static_framework = true

s.source_files = 'Sources/BrazeUICompat/ABK*/**/*.{h,m}'
s.public_header_files = 'Sources/BrazeUICompat/ABK*/**/*.h'
s.resource_bundles = { 'BrazeUICompat' => 'Sources/BrazeUICompat/*/Resources/**/*.*' }
s.static_framework = true

s.dependency 'BrazeKitCompat', '7.3.0'
s.dependency 'BrazeKitCompat', '7.4.0'
s.dependency 'SDWebImage', '>= 5.8.2', '< 6'

s.user_target_xcconfig = { 'CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES' => 'YES' }
Expand Down
25 changes: 20 additions & 5 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,33 @@
## 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](https://github.com/braze-inc/braze-swift-sdk-prebuilt-static) which provides all Braze modules as static XCFrameworks.
- [braze-inc/braze-swift-sdk-prebuilt-dynamic](https://github.com/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`](https://developer.apple.com/documentation/foundation/nsurlrequest/cachepolicy/reloadignoringlocalandremotecachedata) caching policy, which always requests a fresh version from the source and ignores any cached versions.

##### 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

#### Added
##### Added
- Adds support for Expo Notifications [event listeners](https://docs.expo.dev/versions/latest/sdk/notifications/#notification-events-listeners) when using the automatic push integration.

#### Fixed
##### 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.

## 7.2.0

#### Added
##### Added
- Exposes the `BrazePushStory.NotificationViewController.didReceive` methods for custom handling of push story notification events.

#### Fixed
##### Fixed
- Resolves an issue for in-app messages with buttons where tapping on the body would incorrectly execute the button's click action.
- Now, when you tap on the body of an in-app message with buttons, no event should occur.
- Resolves a potential deadlock under rare circumstances in BrazeUI's In-App messages presentation.
Expand All @@ -21,7 +36,7 @@
- Resolves an issue where `BrazeInAppMessageUI` could fail to detect the correct application window for presenting its post-click webview.
- `BrazeInAppMessageUI` now prefers using the current key `UIWindow` instead of the first one in the application's window stack.

#### Removed
##### Removed
- `Braze.Configuration.DeviceProperty.pushDisplayOptions` has been deprecated. Providing this value no longer has an effect.

## 7.1.0
Expand Down
2 changes: 1 addition & 1 deletion Examples/ObjC/manual-integration-setup.sh
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ if [ ! -f "manual-integration-setup.sh" ]; then
fi

# Constants
url="https://github.com/braze-inc/braze-swift-sdk/releases/download/7.3.0/braze-swift-sdk-prebuilt.zip"
url="https://github.com/braze-inc/braze-swift-sdk/releases/download/7.4.0/braze-swift-sdk-prebuilt.zip"

echo "" "Cleaning up"
rm -rf braze-swift-sdk-prebuilt
Expand Down
2 changes: 1 addition & 1 deletion Examples/Swift/manual-integration-setup.sh
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ if [ ! -f "manual-integration-setup.sh" ]; then
fi

# Constants
url="https://github.com/braze-inc/braze-swift-sdk/releases/download/7.3.0/braze-swift-sdk-prebuilt.zip"
url="https://github.com/braze-inc/braze-swift-sdk/releases/download/7.4.0/braze-swift-sdk-prebuilt.zip"

echo "" "Cleaning up"
rm -rf braze-swift-sdk-prebuilt
Expand Down
16 changes: 8 additions & 8 deletions Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,8 @@ let package = Package(
targets: [
.binaryTarget(
name: "BrazeKit",
url: "https://github.com/braze-inc/braze-swift-sdk/releases/download/7.3.0/BrazeKit.zip",
checksum: "c98be52a7bfbb7ff4b122f532abd06676fe93b1935f91f9ca1e462765cc5cedf"
url: "https://github.com/braze-inc/braze-swift-sdk/releases/download/7.4.0/BrazeKit.zip",
checksum: "e820bcb3f8fc85402f51b705ae1494c1d73d341fc16213ddc19039ff0996dd40"
),
.target(
name: "BrazeKitResources",
Expand All @@ -65,18 +65,18 @@ let package = Package(
),
.binaryTarget(
name: "BrazeLocation",
url: "https://github.com/braze-inc/braze-swift-sdk/releases/download/7.3.0/BrazeLocation.zip",
checksum: "7ab0ecdcb7fededd45ea4ebdedc6edfece3e8e097f105ee7d5da6fc7e258bc6b"
url: "https://github.com/braze-inc/braze-swift-sdk/releases/download/7.4.0/BrazeLocation.zip",
checksum: "233bf832190655a4e7e5ff19f7eddc98e872702ba20f7271eead268eef641425"
),
.binaryTarget(
name: "BrazeNotificationService",
url: "https://github.com/braze-inc/braze-swift-sdk/releases/download/7.3.0/BrazeNotificationService.zip",
checksum: "80f1fe0afab3ebcebabe62c05db4fd444fc7a8c82f9b309e9217d02ab4aced98"
url: "https://github.com/braze-inc/braze-swift-sdk/releases/download/7.4.0/BrazeNotificationService.zip",
checksum: "5b9c974c5ed0b48ab1ba59f49dbf98f1c8e3e49959e844a46e0591365cf275d0"
),
.binaryTarget(
name: "BrazePushStory",
url: "https://github.com/braze-inc/braze-swift-sdk/releases/download/7.3.0/BrazePushStory.zip",
checksum: "0c37ca728ba0a5798efd412f254c26827f63f21044642993a004d80c9866d510"
url: "https://github.com/braze-inc/braze-swift-sdk/releases/download/7.4.0/BrazePushStory.zip",
checksum: "3b1b1bf392284755f8b9b00857d9d70cf3c39912b72921617f6f8db910b113e7"
),
.target(
name: "BrazeKitCompat",
Expand Down
14 changes: 13 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

<p align="center">
<a href="https://github.com/braze-inc/braze-swift-sdk/releases">
<img src="https://badgen.net/badge/version/7.3.0/blue" alt="Version: 7.3.0">
<img src="https://badgen.net/badge/version/7.4.0/blue" alt="Version: 7.4.0">
</a>
<a href="#">
<img src="https://badgen.net/badge/platforms/iOS%20%7C%20tvOS%20%7C%20Mac%20Catalyst/orange"
Expand Down Expand Up @@ -74,6 +74,14 @@ Explore our [examples project](/Examples) which showcases multiple features' int
| Unity || 4.0.0 |
| Xamarin | In Progress | TBD |

## Alternative Repositories

| Variant | Repository | GH Issues, SDK info |
|---------------------------------------|---------------------------------------------:|--------------------:|
|**Sources and Static XCFrameworks** | [braze-inc/braze-swift-sdk] ||
| Static XCFrameworks | [braze-inc/braze-swift-sdk-prebuilt-static] ||
| Dynamic XCFrameworks | [braze-inc/braze-swift-sdk-prebuilt-dynamic] ||

## `Appboy-iOS-SDK`

As of version 5.8.0, the Braze Swift SDK provides all the features available in the `Appboy-iOS-SDK`.
Expand All @@ -85,3 +93,7 @@ The `Appboy-iOS-SDK` (Objective-C) SDK is now in maintenance mode, which means o
## Questions?

If you have questions, please contact [support@braze.com](mailto:support@braze.com) or open a [Github Issue](https://github.com/braze-inc/braze-swift-sdk/issues).

[braze-inc/braze-swift-sdk]: https://github.com/braze-inc/braze-swift-sdk
[braze-inc/braze-swift-sdk-prebuilt-static]: https://github.com/braze-inc/braze-swift-sdk-prebuilt-static
[braze-inc/braze-swift-sdk-prebuilt-dynamic]: https://github.com/braze-inc/braze-swift-sdk-prebuilt-dynamic
19 changes: 19 additions & 0 deletions Sources/BrazeUI/InAppMessageUI/InAppMessageUIExt.swift
Original file line number Diff line number Diff line change
Expand Up @@ -93,3 +93,22 @@ extension BrazeInAppMessageUI {
}

}

extension BrazeInAppMessageUI {

/// Wrapper class to contain the corresponding `BrazeKit` struct.
///
/// InAppMessage types are represented as structs and imported from BrazeKit.
/// This wrapper acts as a workaround to prevent Objective-C metaclass errors.
class MessageWrapper<WrappedType> {
var wrappedValue: WrappedType

/// Initializes the wrapper with the wrapped struct.
///
/// - Parameter wrappedValue: The wrapped struct type.
init(wrappedValue: WrappedType) {
self.wrappedValue = wrappedValue
}
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,20 @@ extension BrazeInAppMessageUI {
open class ControlView: UIView, InAppMessageView {

/// The control in-app message.
public var message: Braze.InAppMessage.Control
public var message: Braze.InAppMessage.Control {
get { messageWrapper.wrappedValue }
set {
messageWrapper.wrappedValue = newValue
}
}

/// Internal wrapper for the control in-app message.
let messageWrapper: MessageWrapper<Braze.InAppMessage.Control>

/// Creates and returns a control in-app message view.
/// - Parameter message: The message.
public init(message: Braze.InAppMessage.Control) {
self.message = message
self.messageWrapper = .init(wrappedValue: message)
super.init(frame: .zero)
}

Expand Down
Loading

0 comments on commit 951d5e1

Please sign in to comment.