The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
#### Breaking
- Updates the minimum required version of SDWebImage from 5.8.2 to [5.18.7](https://github.com/SDWebImage/SDWebImage/releases/tag/5.18.7).
- This version includes the privacy manifest for SDWebImage, which appears on the [privacy-impacting SDKs list](https://developer.apple.com/support/third-party-SDK-requirements/).
#### Added
- Adds the privacy manifest to describe data usage collected by Braze. For more details, refer to the [Apple documentation on privacy manifests](https://developer.apple.com/documentation/bundleresources/privacy_manifest_files).
- Adds code signatures to all XCFrameworks in the Braze iOS SDK, signed by `Braze, Inc.`.
##### Fixed
- Fixes an issue in Full or Modal in-app messages where the header text would be duplicated in place of the body text under certain conditions.
This release requires Xcode `14.x`.
#### Breaking
- Drops support for iOS 9 and iOS 10.
- Removes support for the outdated `.framework` assets when importing via Carthage in favor of the modern `.xcframework` assets.
- Use the command `carthage update --use-xcframeworks` to import the appropriate Braze asset.
- Removes support for `appboy_ios_sdk_full.json` in favor of using `appboy_ios_sdk.json` by including these lines in your `Cartfile`:
```
binary "https://raw.githubusercontent.com/Appboy/appboy-ios-sdk/master/appboy_ios_sdk.json"
github "SDWebImage/SDWebImage"
```
##### Fixed
- Improves resilience when triggering in-app messages with date property filters.
##### Added
- Adds a new option `ABKReenqueueInAppMessage` to enum `ABKInAppMessageDisplayChoice`.
- Return this option in `beforeInAppMessageDisplayed:` of an `ABKInAppMessageControllerDelegate` to ensure that an in-app message is not displayed and becomes eligible to trigger again.
- This option will reset any trigger times and re-eligibility rules as if it was never triggered. It will not add the message to the in-app message stack.
##### Fixed
- Improves reliability of custom event property type validation.
- Fixes an issue where the status bar would not restore to its original state after a full in-app message was dismissed.
##### Fixed
- Fixes a crash that occurs when receiving custom event properties of numeric types under certain conditions.
- Fixes UI responsiveness warnings when requesting location authorization status.
##### Fixed
- Improves reliability when validating trigger properties.
- Improves the `NSURLSessionConfiguration` disk and memory cache capacities for file downloads. This change enables larger file downloads to be cached if needed.
##### Fixed
- Improves eligibility checks around the minimum trigger timeout for in-app messages by now checking at _trigger time_ in addition to _display time_.
- Fixes an issue where purchases would not trigger certain templated in-app messages.
##### Added
- Adds the delegate method `noMatchingTriggerForEvent:name:` to `ABKInAppMessageControllerDelegate`, which is called if no Braze in-app message was triggered for a given event.
##### Added
- Adds support for Content Cards to evaluate Retry-After headers.
##### Fixed
- Calling `appboyBridge.closeMessage()` or `brazeBridge.closeMessage()` from an HTML in-app message now correctly triggers `ABKInAppMessageUIDelegate.onInAppMessageDismissed:` when implemented.
- Fixes an issue in `4.4.3` where the tvOS SDK incorrectly referenced an older SDK version.
##### Fixed
- Fixes an issue introduced in `4.4.0` which prevented custom events or purchases with an empty dictionary of properties from being logged.
- Improves handling of `ABKInAppMessageWindow`'s dismissal to promptly remove it from the view hierarchy.
- Fixes the position of the pinned indicator for _Captioned Image_ Content Cards when using the default UI.
- Fixes an issue introduced in `4.3.2` and limited to users of `Appboy-tvOS-SDK`, which prevented custom events with properties or purchases with properties from being logged.
##### Added
- Adds a `padding` property to `ABKCaptionedImageContentCardCell` to support modifying the default value.
##### Fixed
- Fixes a bug for HTML in-app messages using the _HTML Upload with Preview_ option to improve the reliability of in-app message display.
- Fixes a bug preventing integration via Swift Package Manager in specific contexts.
- Fixes an issue in the default Content Cards UI where the empty feed label was truncated if it was too large for the screen, for example due to accessibility or localization.
- Fixes an issue where Slideup in-app messages would be automatically dismissed after multiple interaction with the app's main window.
##### Changed
- If `changeUser:sdkAuthSignature:` is called with the current user's ID, but with a new and valid SDK Authentication signature, the new signature will be used.
- Improves push tracking accuracy for apps making use of `UISceneDelegate` (UIKit) or `Scene` (SwiftUI).