Change log and release notes for the Batch SDK. Any variances between Android, iOS, AIR, and Unity will be noted.
Download: iOS – Requires Xcode 10
Opting-out from the SDK now sends an event notifying the server of this. If a data wipe has been asked, the request will also be forwarded to the server. New methods have been introduced to be informed of the status of the request to update your UI accordingly, and possibly revert the opt-out if the network is unreachable.
BatchDeeplinkDelegate protocol. Adopting it allows you to manually process deeplink open requests from Batch, rather than having to implement
Batch.deeplinkDelegate for more information.
+[BatchPush registerForRemoteNotifications]into more explicit methods.
+[BatchPush requestNotificationAuthorization]shows the system notification authorization prompt, and then fetches the push token. Equivalent to calling
+[BatchPush refreshToken]will only ask iOS for a new token. This needs to be called on every application start to handle upgrades from versions without Batch, or if iOS changes the push token.
+[BatchPush requestProvisionalNotificationAuthorization]. This method does nothing on versions lower than iOS 12.
[BatchPush setsetSupportsAppNotificationSettings:true]Note that this still requires you to implement a UNUserNotificationCenterDelegate, and the appropriate method to open the settings.
Event data support has been overhauled. As a result:
BatchEventData. Use this class to attach attributes and tags to an event. See this class' documentation for more information about limits.
+[BatchUser trackEvent:withLabel:data:]has been deprecated
BatchEventData. Same data format restrictions apply: Any key/value entry that can't be converted will be ignored, and logged. Tags are not supported
+[BatchUser trackEvent:withLabel:associatedData:]which uses
BatchEventData, replacing the deprecated method.
BatchUser.trackEvent("event_name", withLabel: "label", data: BatchEventData())
Added methods to handle opting-out from Batch, and wiping user data.
[Batch optOutAndWipeData] and
You can control whether Batch is opted out from by default setting a boolean TRUE in your Info.plist for the key:
For compatibility reasons, Batch will be enabled by default.
More info in our documentation.
Fixed a bug where an In-App Campaign might not trigger for a certain configuration if a tracked event had a label
Added support for a new Banner format for In-App Messaging and Mobile Landings
If your app uses the Mobile Landing/In-App Messaging manual mode, and especially
[BatchMessaging loadViewControllerForMessage:error:] you need to change the way you present the view controllers manually: please check the updated manual mode documentation for more information.
A helper has been added on BatchMessaging, which is especially useful if you don't feel like making your own UIWindow:
Fix In-App Campaigns not honoring the grace period
Fix an issue where on iOS 11, the fullscreen Messaging template may not be displayed correctly for themes with no CTA
The SDK will now log the current Installation ID on start
Added [BatchMessaging presentViewController:], which takes care of showing a previously loaded BatchMessagingViewController in the most appropriate way.
If you used [BatchMessaging loadViewControllerForMessage:error:] to display messages in manual mode, you should go to the messaging documentation to follow updated instructions: failure to do so will result in incorrect banner behaviour.
Added support for Smart Invert in Mobile Landings/In-App Messaging. Images won't be inverted anymore.
Added iPhone X support for Mobile Landings/In-App Messaging.
[BatchMessaging loadViewControllerForMessage:error:] is now allowed in automatic mode.
Delay button handling in messaging views to until animations are over. This may have prevented deeplinks or custom actions from working properly, as UIKit does not support presenting a view controller while one is already animating.
Fix In-App Campaigns accidentally performing too much work on the main thread.
Fix a concurrency issue with In-App Campaigns which could very rarely cause a crash
[Batch setUseAdvancedDeviceInformation:]has been introduced to reduce the quantity of device information Batch will use. Note that disabling this will limit several dashboard features.
UIUserNotificationCategoryinstances given to
[BatchPush setNotificationsCategories:]are automatically converted to
UNNotificationCategoryon iOS 10.
[BatchPush registerForRemoteNotificationsWithCategories:]has been split in two methods and is now deprecated
BatchExtension. It is compatible with application extensions APIs, and will progressively bring more Batch features to your extensions. In this version, it is used to add support for Rich Notifications.
Since iOS 10 changes quite a lot in how notifications work, it is strongly advised that you read our iOS 10 documentation: https://batch.com/doc/ios/advanced/ios10-migration.html . Upgrading to UNUserNotificationDelegate is recommended.
Note: : If you previously integrated Batch, you may need to remove lines that look like
$(PODS_ROOT)/Batch/**from "Framework Search Paths"in your Build settings for Batch to work with Xcode 7.
Improved Native Ads:
Fix an issue that could cause a freeze if your application embedded custom fonts and was started in Airplane mode
@import Batch;now imports all of Batch's modules. If you want to keep the old behavior, import the new
Batch.Coresubmodule, rather than
Various minor bugfixes.
Batch Ads (interstitials) released.
Moved a file put by mistake in /Documents/ into /Library/Application Support/.
Batch out of beta testing and 1.0 published.
Bastion, the predecessor to Batch, is released with Unlock functionality.