Releases: braze-inc/braze-ios-sdk
Releases · braze-inc/braze-ios-sdk
4.4.1
Fixed
- Fixes an issue in which
input
elements withtype="date"
in HTML in-app messages do not respond to some user interactions on iOS 14 and iOS 15. - Fixes
ABKSdkMetadata
availability when using the dynamic variant of the SDK. - Fixes an issue in which the default content cards UI's empty feed label does not wrap properly when the text is more than 2 lines.
Changed
- Changed
ABKInAppMessageUIDelegate.inAppMessageViewControllerWithInAppMessage:
to accept anil
return value.
Added
- Adds support for the
playsinline
attribute on HTML<video>
elements within webpages that are opened in the app by Braze. - Adds XCFramework support for the Core integration via Carthage. Please follow the Carthage migration guide when transitioning to the new artifact.
4.4.0
Breaking
- Adds XCFramework support to Carthage. This allows projects integrated via Carthage to support Apple Silicon simulators and Mac Catalyst.
- When migrating from the original
.framework
to the new.xcframework
, follow the official Carthage migration guide. - For those using the Full integration, use the following lines in your
Cartfile
. Note that it references the fileappboy_ios_sdk.json
:binary "https://raw.githubusercontent.com/Appboy/appboy-ios-sdk/master/appboy_ios_sdk.json" github "SDWebImage/SDWebImage"
- To continue using the original Full
.framework
file, include theCartfile
lines above but referenceappboy_ios_sdk_full.json
. Then, runcarthage update
.
- To continue using the original Full
- For those using the Thin integration, use the same
Cartfile
above but exclude the line withSDWebImage
. - The Core integration does not support XCFrameworks, and you can use the original
.framework
files as before.
- When migrating from the original
Added
- Adds a new attachment to the release called
Appboy_iOS_SDK.xcframework.zip
.- This artifact has the all-in-one XCFramework containing the full SDK code including all of the assets.
- When importing this code manually, drag-and-drop the XCFramework into your project and select
Embed & Sign
. Then, add-ObjC
underBuild Settings > Other Linker Flags
in your app's target.
- Adds localization support for the close button's accessibility label in modal and full in-app messages.
- Adds the ability to set the SDK's log level at runtime by setting
ABKLogLevelKey
to an integer inappboyOptions
. Descriptions of the available log levels can be found here. - Adds
Appboy.addSdkMetadata:
to allow self reporting of SDK Metadata fields via theABKSdkMetadata
enum.
4.3.4
This release requires Xcode 13.
Fixed
- Fixes an issue in which the pinned indicator for a Banner Content Card would not display in the default Content Cards UI.
- Fixes an issue which prevented custom events and purchases with properties larger than 50 KB to be properly discarded.
4.3.3
Fixed
- Fixes a race-condition occasionally preventing HTML in-app messages with assets from being displayed from a test push.
- Fixes an issue which prevented HTML in-app messages from opening
sms:
,mailto:
,tel:
,facetime:
andfacetime-audio:
urls.- Previously, those urls would fail to open silently.
- Fixes an issue where
ABKContentCardsTableViewController
was not displaying the "no update" label after the last card was deleted from the feed.
Added
- Adds methods
addToSubscriptionGroupWithGroupId:
andremoveFromSubscriptionGroupWithGroupId:
toABKUser
to manage SMS/Email Subscription Groups.- Also adds
appboyBridge.getUser().addToSubscriptionGroup(groupId)
andappboyBridge.getUser().removeFromSubscriptionGroup(groupId)
to the javascript interface for HTML in-app messages.
- Also adds
4.3.2
Fixed
- Iframes embedded in an HTML in-app message are now displayed as part of the same in-app message. Previously, iframes would be loaded in a separate webview.
Added
- Adds support for navigation bar transparency changes introduced in iOS 15. Apps using Braze default UIs for Content Cards, the News Feed, and the modal WebView should upgrade to this version as soon as possible ahead of iOS 15's release.
4.3.1
Fixed
- The
sdkAuthenticationDelegate
now works as expected when setting the property directly. - VoiceOver no longer reads content beneath the displayed in-app message.
Changed
- The number of unviewed Content Cards in
ABKContentCardsController
'sunviewedContentCardCount
now excludes control cards. - The default Content Cards UI now allows swipe-to-refresh gestures when empty.
- Deprecates
ABKInAppMessageController
's methoddisplayNextInAppMessageWithDelegate:
in favor ofdisplayNextInAppMessage
.
Added
- Custom events and purchases now support nested properties.
- In addition to integers, floats, booleans, dates, or strings, a JSON object can be provided containing dictionaries of arrays or nested dictionaries. All properties combined can be up to 50 KB in total length.
4.3.0
4.2.0
Breaking
- Contents Cards and News Feed are now more extensible!
- Class level API methods have changed to instance methods to make subclassing easier, however
getNavigationContentCardsViewController
andgetNavigationFeedViewController
are left in as class methods for backwards compatibility. - Subclassing views is now fully supported for customizations. See the Content Card sample code for examples.
- Alternatively, you can bring your own storyboard with customizations. See our example custom storyboard implementation.
- See the Content Cards documentation for more information.
- Class level API methods have changed to instance methods to make subclassing easier, however
Fixed
- Fixes an issue with Dynamic Type support introduced in 3.34.0 to be compatible with iOS 9.
Added
- Adds support for new SDK Authentication feature.
- Exposes
window.brazeBridge
in HTML in-app messages which replaceswindow.appboyBridge
.appboyBridge
is deprecated and will be removed in a future version of the SDK.
Changed
- Makes in-app message window handling more resilient:
- The in-app message window tries to display up to 10 times when another window competes for visibility. If the in-app message is not guaranteed visibility, it is dismissed and an error is logged.
- Improves
Appboy
'swipeDataAndDisableForAppRun
anddisableSDK
to handle additional use cases. - Deprecates
flushDataAndProcessRequestQueue
in favor ofrequestImmediateDataFlush
.
4.1.0
Breaking
ABKURLDelegate
methodhandleAppboyURL:fromChannel:withExtras:
is now invoked for all urls.- Previously, this delegate method was not invoked for urls opened in a WebView or the default browser when originating from the News Feed or Content Cards.
- Removes
ABKUIURLUtils
methodopenURLWithSystem:fromChannel:
. UseopenURLWithSystem:
as a replacement.
Fixed
- Fixes a case where the
ABKURLDelegate
methodhandleAppboyURL:fromChannel:withExtras:
was being called twice when opening a push notification with an url.
Changed
- Deprecates
ABKUnknownChannel
.
4.0.2
Fixed
- Fixes a double redirection bug in Push Stories when the app is in a terminated state and
application:didReceiveRemoteNotification:fetchCompletionHandler:
is not implemented.
Changed
- Improves the Swift Package Manager bundle lookup to be more flexible.
Added
- Adds support to use a dictionary named
Braze
instead ofAppboy
when adding customization in theInfo.plist
. After adding theBraze
dictionary, please remove the previousAppboy
dictionary.