SDK changelog



  • Fixed an issue on Android where open push message events queued on cold start were sent before we could register a listener.



  • Fixed an issue where listening for open push message events wasn't working on cold start.



  • Plugin now compiles with and targets SDK 33 (Android 13).


  • Added a new API: BatchPush.requestNotificationAuthorization(). This allows you to request for the new notification permission introduced in Android 13. See the documentation for more info.



  • Batch requires Xcode 13.4.1
  • Fixed autolinking on react-native 0.69+ and Expo 46



  • Updated Batch 1.19. Batch requires Xcode 13.3.1 and iOS 10.0 or higher.
  • Updated how Batch is imported to support React-Native v0.68 wich now uses Objective-C++.
  • Added support for Expo 45


  • Added getters for identifier, language, region, attributes and tagCollections in BatchUser.
  • Added a fix where you couldn't use setLanguage or setRegion with a nil value on iOS.


There are several breaking changes (indicated with [BREAKING]) so please read along.

Batch SDK version

  • Migrated to Batch SDK v1.18
    • For iOS:
      1. [BREAKING] Make sure to update your Podfile Batch SDK version
      2. [BREAKING] Batch requires Xcode 13 or higher


  • Added URL type in event data with putURL.
  • Added Date type in event data with putDate.


  • Added URL type in custom attributes with setURLAttribute.


  • Added BatchMessaging.addListener to listen for messaging notifications events. See documentation.


  • Added BatchPush.addListener to listen for push notifications events. See documentation to see platform differences.

  • iOS: Deprecated BatchPush.registerForRemoteNotifications by splitting it into two methods:

    • BatchPush.refreshToken, which should be called on every app start after opt-in if you're opted out by default.
    • BatchPush.requestNotificationAuthorization, which should be called whenever you want to ask the user the permission to display notifications.
  • iOS: Added requestProvisionalNotificationAuthorization to request a provisional authorization on iOS 11 and higher.

Bug Fixes

  • Fix isUnread property of a Batch inbox notification : it was previously always undefined, now it is correctly set.
  • Fix crash in trackTransaction when it was called without data as second parameter.


There are several breaking changes (indicated with [BREAKING]) so please read along.


Batch SDK version

  • Migrated to Batch SDK v1.17
    • For iOS:
      1. [BREAKING] Make sure to update your Podfile Batch SDK version
      2. [BREAKING] Batch requires Xcode 12 and iOS 10.0 or higher
      3. [BREAKING] Make sure to follow again the Extra steps on iOS, a new section has been added about the BatchUNUserNotificationCenterDelegate (if you haven't implemented a delegate yet)
    • For Android:
      1. [BREAKING] Make sure to have up-to-date android build tools (see Android blog)
  • [Android] You can now update the Batch SDK manually with the rootProject ext property batchSdkVersion. On iOS this was already possible (you set the version in your Podfile)

Mobile landings / in app messages

  • Added BatchMessaging.setFontOverride() so that you can change the font of messaging views (eg. In-app campaigns landings)
  • Added disableDoNotDisturbAndShowPendingMessage for quicker setup and to minimize any race condition between disabling do not disturb and showing the pending message
  • Do not disturb (for mobile landings/in app messages) can now be enabled natively on Android and iOS. 99% of the time on a regular React Native app, you should enable it. See README) to see why and how to handle the new behavior (call disableDoNotDisturbAndShowPendingMessage when ready, or disable do not disturb manually).
    • [BREAKING] Batch.start is now useless so it has been removed. You must remove any call to Batch.start in your javascript code.
    • [BREAKING] [iOS] the optional argument to [RNBatch start] native method is now useless so it has been removed. You must replace any [RNBatch start:false] to [RNBatch start]

DX improvements

  • Chaining Batch User editor is now optional
  • Added Batch.showDebugView() so that you can easily debug your Batch installation


  • [BREAKING] [Inbox] Rewrote inbox API to expose every native SDK Inbox methods such as markNotificationAsRead. You can now implement an infinite loading list of notifications with this API. (see migration examples)

Bug Fixes

  • [Android] Fix resume count
    • This removes an error in the logs when receiving a push while in background and potentially fixes issues related to the app going from background to foreground
    • [BREAKING] In order to migrate, make sure to follow the new README section on configuring auto-linking
  • Fixed a GDPR scenario case where the Batch iOS/Android SDK might not be started
  • Added BatchPush.getInitialURL to workaround issues on iOS to get the deeplink associated to the notification that opened the app initially. Linking.getInitialURL can be replaced by BatchPush.getInitialURL on every platforms.
  • [iOS] [Inbox] Fixed a crash when a notification's source was unknown
  • Exposed promises in critical methods such as optIn in order to prevent potential race conditions
  • [iOS] showPendingMessage will now work correctly
  • [Android] Fixed potential crash in showPendingMessage when the activity is not found


  • Added a guide in the doc for GDPR compliance
  • [iOS] Added a guide in the doc for showing notifications on foreground