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.
*Compiles with Xcode 15.1*
**Batch requires Xcode 15.1 and iOS 12.0 or higher**
**Core**
* Re-release of 1.21.1 due to a build script issue.
*Compiles with Xcode 15.1*
**Batch requires Xcode 15.1 and iOS 12.0 or higher**
**Core**
* Batch now sets a `MinimumOSVersion` of `100.0` to workaround a framework validation bug on Xcode 15.3.
*Compiles with Xcode 15.1*
**Batch requires Xcode 15.1 and iOS 12.0 or higher**
**Core**
* Improved Batch Logger for better use in Xcode 15.
* Removed support for IDFA (Advertising ID) automatic collection. `Batch.setCanUseIDFA` is now a no-op.
You need to collect it from your side and pass it to Batch via the added `[BatchUserDataEditor setAttributionIdentifier:]` method.
* Added Batch's Privacy Manifest. Since, as of writing, Apple does not support the XCPrivacy file for static frameworks you may not see Batch in the genertaed privacy report.
* Added code signature to the Batch's XCFramework distribution.
**In-App**
* In-App WebViews can now be inspected using macOS Safari on iOS 16.4 and higher.
* Fixed a crash when trying to display 0px width images in the Image format.
*Compiles with Xcode 14.3.1*
**Batch requires Xcode 14.3.1 and iOS 11.0 or higher**
> Note: Due to Xcode 15 dropping support for iOS 11.0, this is the last minor version supporting iOS 11.
**Core**
* Fixed Universal Links not triggering SwiftUI's' `onOpenUrl` (iOS 14+). For iOS 13, implement your own `UISceneDelegate` using a custom application delegate or use a `BatchDeeplinkDelegate`.
**User**
* Added method `[BatchUserDataEditor setEmail:]`. This requires to have a user identifer registered or to call the `setIdentifier` method on the editor instance beforehand.
* Added `[BatchUserDataEditor setEmailMarketingSubscriptionState:]` method to subscribe to the email marketing list.
**Inbox**
* Added the ability to know if a `BatchPushMessage` has been displayed from the inbox via the `isDisplayedFromInbox` property.
* Added the ability to know if a notification has a landing message attached on `BatchInboxNotificationContent` using the `hasLandingMessage()` method.
* Added the ability to display a landing message attached to a `BatchInboxNotificationContent` using the `displayLandingMessage()` method.
**Messaging**
* Added support for Dynamic Type allowing Batch to adapt textual content to honor the user's font size settings. This is enabled by default, you can disable it at any moment by using `[BatchMessaging setEnableDynamicType:false]`.
* In-Apps Banner no longer displays when the presented view controller is an `SFSafariViewController` as it should not be hidden or obscured by other views or layers.
*Compiles with Xcode 13.3.1*
**Batch requires Xcode 13.3.1 and iOS 10.0 or higher**
> Note: Due to Xcode 14 dropping support for Bitcode and 32-bit architectures, this is the last minor version to be bundled with these slices.
**Messaging**
* In-App WebView can now display inline `<video>` elements.
*Compiles with Xcode 13.3.1*
**Batch requires Xcode 13.3.1 and iOS 10.0 or higher**
> Note: Due to Xcode 14 dropping support for Bitcode and 32-bit architectures, this is the last minor version to be bundled with these slices.
**Core**
* Added support for Universal Links in apps using UISceneDelegate
**Messaging**
* In-App WebView will now ignore WebKit error (204) when loading a video URL without HTML container
*Compiles with Xcode 13.3.1*
**Batch requires Xcode 13.3.1 and iOS 10.0 or higher**
> Note: Due to Xcode 14 dropping support for Bitcode and 32-bit architectures, this is the last minor version to be bundled with these slices.
**Core**
* Fixed a SQLite crash caused by a race condition: triggering an In-app message with "Re-evaluate campaign eligibility" enabled right after calling `[BatchUserDataEditor save]` could make concurrent accesses to SQLite and crash.
**Messaging**
* Fixed a rare crash that could happen when re-evaluating multiple campaigns eligibility for a same trigger.
*Compiles with Xcode 13.3.1*
**Batch requires Xcode 13.3.1 and iOS 10.0 or higher**
> Note: Due to Xcode 14 dropping support for Bitcode and 32-bit architectures, this is the last minor version to be bundled with these slices.
**Core**
* Fixed implementations of various internal objects implementing NSCopying, which could crash in some rare cases on pre iOS 13 devices.
* Fixed an issue the SDK would not send a notification permission status change to Batch's servers until a later SDK start.
*Compiles with Xcode 13.3.1*
**Batch requires Xcode 13.3.1 and iOS 10.0 or higher**
> Note: Due to Xcode 14 dropping support for Bitcode and 32-bit architectures, this is the last minor version to be bundled with these slices.
**Core**
* Fixed an issue where some non-profile data (display receipts and In-App campaign view history) wasn't deleted after using `[Batch optOutAndWipeData]`.
* Updated `BatchMessagingContentType`'s definition to use a modern NS_ENUM declaration. Fixes an issue where the header could not be parsed in an Objective-C++ context.
**Messaging**
* Fixed a display issue on Modals with an image but no title.
*Compiles with Xcode 13.1*
**Batch requires Xcode 13 and iOS 10.0 or higher**
**Core**
* Updated `BatchMessagingContentType`'s definition to use a modern NS_ENUM declaration. Fixes an issue where the header could not be parsed in an Objective-C++ context.
**Messaging**
* Fixed a display issue on Modals with an image but no title.