Releases: Appboy/appboy-ios-sdk
3.20.4
Fixed
- Fixed an issue with Content Cards where the header and description text fields would appear to be missing in Dark Mode.
Added
- Adds a
TEALIUM
SDK flavor option.
Note
- This SDK release contains a framework build that is backwards compatible with iOS 8. Please see the binaries section of this page.
3.20.3
3.20.2
Important If you are on Braze iOS SDK 3.19.0 or below, we recommend upgrading to this version immediately to ensure uninterrupted collection of new push tokens as users upgrade to iOS 13.
- In
application:didRegisterForRemoteNotificationsWithDeviceToken:
, replace
[[Appboy sharedInstance] registerPushToken:
[NSString stringWithFormat:@"%@", deviceToken]];
with
[[Appboy sharedInstance] registerDeviceToken:deviceToken];
-
If you are on Braze iOS SDK 3.19.0 or below and unable to upgrade, you must ensure your
[Appboy registerPushToken]
implementation does not rely onstringWithFormat
ordescription
for parsing thedeviceToken
passed in fromapplication:didRegisterForRemoteNotificationsWithDeviceToken:
. Please reach out to your Customer Success Manager for more information. -
Important In Braze iOS SDK 3.19.0, we updated our HTML in-app message container from
UIWebview
toWKWebView
, however, the initial releases have known issues displaying HTML in-app messages. If you are currently using 3.19.0, 3.20.0, or 3.20.1, you are strongly encouraged to upgrade if you make use of HTML in-app messages. Please see the following for more important information about the transition toWKWebView
:- If you are utilizing customization for HTML in-app messages (such as customizing
ABKInAppMessageHTMLFullViewController
orABKInAppMessageHTMLViewController
), we strongly recommend testing to ensure your in-app messages continue to display correctly and interactions function as intended. - The following javascript methods are now no-ops:
alert
,confirm
,prompt
. - Deep links without schemes are no longer supported. Ensure that your in-app message deep links contain schemes.
- If you are utilizing customization for HTML in-app messages (such as customizing
Fixed
- Fixes an issue introduced in 3.19.0 where HTML in-app messages would not register user clicks when the
.xib
failed to load. - Fixes an issue introduced in 3.19.0 where HTML in-app messages with select special characters and an assets zip would cause display irregularities.
Changed
- Updates the
WKWebView
which displays HTML in-app messages with the following attributes:suppressesIncrementalRendering
is set to truemediaTypesRequiringUserActionForPlayback
is set toWKAudiovisualMediaTypeAll
- Updates the background color of the
WKWebView
which displays HTML in-app messages from[[UIColor blackColor] colorWithAlphaComponent:.3]
to[UIColor clearColor]
.
3.20.1
Important This release has known issues displaying HTML in-app messages. Do not upgrade to this version and upgrade to 3.20.2 and above instead. If you are using this version, you are strongly encouraged to upgrade to 3.20.2 or above if you make use of HTML in-app messages.
Fixed
- Fixes an issue introduced in 3.19.0 which changed the background of HTML in-app messages to a non-transparent color.
- Improves the robustness of push token collection code for iOS 13 introduced in 3.20.0.
3.20.0
Important This release has known issues displaying HTML in-app messages and a known issue with push token collection. Do not upgrade to this version and upgrade to 3.20.2 and above instead. If you are using this version, you are strongly encouraged to upgrade to 3.20.2 or above if you make use of HTML in-app messages.
Breaking
- Introduced a signature change for push token collection methods:
[[Appboy sharedInstance] registerPushToken:
[NSString stringWithFormat:@"%@", deviceToken]];
with
[[Appboy sharedInstance] registerDeviceToken:deviceToken];
3.19.0
Important This release has known issues displaying HTML in-app messages. Do not upgrade to this version and upgrade to 3.20.2 and above instead. If you are using this version, you are strongly encouraged to upgrade to 3.20.2 or above if you make use of HTML in-app messages.
Breaking
- Replaces
UIWebView
withWKWebView
for HTML in-app messages.- If you are utilizing customization for HTML in-app messages (such as customizing
ABKInAppMessageHTMLFullViewController
orABKInAppMessageHTMLViewController
), you must test to ensure your in-app messages continue to display correctly and interactions function as intended. - The following javascript methods are now no-ops:
alert
,confirm
,prompt
. - Deep links without schemes are no longer supported. Please ensure that your in-app message deep links contain schemes.
- If you are utilizing customization for HTML in-app messages (such as customizing
3.18.0
Breaking
- Automatic Braze location collection is now disabled by default. If you choose to use our location collection, you must explicitly enable location collection.
- You can do this in the plist by adding the
Appboy
dictionary to your Info.plist file. Inside theAppboy
dictionary, add theEnableAutomaticLocationCollection
boolean subentry and set the value toYES
. - You can also enable location at runtime by setting
ABKEnableAutomaticLocationCollectionKey
toYES
inappboyOptions
.
- You can do this in the plist by adding the
- Removes the Feedback feature from the SDK. The
Feedback
subspec and all Feedback methods on the SDK, including[[Appboy sharedInstance] submitFeedback]
and[[Appboy sharedInstance] logFeedbackDisplayed]
, are removed.
Changed
- Improves support for in-app messages on “notched” devices (for example, iPhone X, Pixel 3XL). Full-screen messages now expand to fill the entire screen of any phone, while covering the status bar.
Added
- Adds the ability to enable Braze Geofences without enabling Braze location collection. You can set this in the plist by adding the
Appboy
dictionary to your Info.plist file. Inside theAppboy
dictionary, add theEnableGeofences
boolean subentry and set the value toYES
to enable Braze Geofences. You can also enable geofences at runtime by settingABKEnableGeofencesKey
toYES
inappboyOptions
.- If this key is not set, it will default to the status of automatic location collection (see breaking change above).
- Note that Braze Geofences will continue to work on existing integrations if location collection is enabled and this new configuration is not present. This new configuration is intended for integrations that want Braze Geofences, but not location collection enabled as well.
3.17.0
3.16.0
Breaking
- Removes the methods:
allowRequestWhenInUseLocationPermission
andallowRequestAlwaysPermission
fromABKLocationManager
.- To request when in use location permission, use the following code:
CLLocationManager *locationManager = [[CLLocationManager alloc] init]; [locationManager requestWhenInUseAuthorization];
- To request always location permission, use the following code:
CLLocationManager *locationManager = [[CLLocationManager alloc] init]; [locationManager requestAlwaysAuthorization];
- The preprocessor macro
ABK_DISABLE_LOCATION_SERVICES
is no longer needed. - Important: Configuring geofences to request always location permissions remotely from the Braze dashboard is no longer supported. If you are using Geofences, you will need to ensure that your app requests always location permission from your users manually.
ABKAutomaticRequestProcessingExceptForDataFlush
is deprecated. Users usingABKAutomaticRequestProcessingExceptForDataFlush
should switch toABKManualRequestProcessing
, as the new behavior ofABKManualRequestProcessing
is identical to the previous behavior ofABKAutomaticRequestProcessingExceptForDataFlush
Changed
- Deprecates the push utility methods:
isUninstallTrackingUserNotification:
,isUninstallTrackingRemoteNotification:
,isGeofencesSyncUserNotification:
,isGeofencesSyncRemoteNotification:
, andisPushStoryRemoteNotification:
fromABKPushUtils
. Please use the functionisAppboyInternalRemoteNotification:
. - Minor changes to the logic of
ABKManualRequestProcessing
. The originalABKManualRequestProcessing
had specific exceptions and behaved more likeABKAutomaticRequestProcessingExceptForDataFlush
in practice. As a result, the two policies have been merged intoABKManualRequestProcessing
. Note that the new definition ofABKManualRequestProcessing
is that periodic automatic data flushes are disabled. Other requests important to basic Braze functionality will still occur.