React Native SDK の変更ログ
⚠️ In version 2.0.0, we changed the iOS bridge from AppboyKit, which is written in Objective-C, to the new Swift SDK. If you are upgrading from a version below 2.0.0 to a version above 2.0.0, please read the instructions to ensure a smooth transition and backward compatibility.
11.0.0
Breaking
- Updates the native Android version bindings from Braze Android SDK 30.4.0 to 31.1.0.
 
Fixed
- Fixes an issue on Android where the 
timestampof aPushNotificationEventwas incorrectly translated from alongto aint. The value received by the JavaScript layer is now the same as the value sent from the Android code. 
10.0.0
Breaking
- Updates the native iOS version bindings from Braze Swift SDK 8.4.0 to 9.0.0.
 
Added
- Updates the native Android version bindings from Braze Android SDK 30.3.0 to 30.4.0.
 
9.2.0
Added
- Updates the native iOS version bindings from Braze Swift SDK 8.2.1 to 8.4.0.
 
Fixed
- Fixes the Android implementation of 
Braze.setCustomUserAttribute()to correctly handle null values.- Thanks @owonie for your contribution!
 
 
9.1.0
Added
- Adds the 
BrazeInAppMessage.isTestSendproperty, which indicates whether an in-app message was triggered as part of a test send. - Updates the native iOS version bindings from Braze Swift SDK 8.1.0 to 8.2.1.
 - Updates the native Android version bindings from Braze Android SDK 30.1.1 to 30.3.0.
 
Fixed
- Fixes the iOS implementation of 
Braze.registerPushToken()to correctly pass the device token to the native SDK. 
9.0.0
Breaking
- Bumps React Native minimum requirement version to 0.71.0.
    
- For further details about levels of support for each React Native release, refer to Releases Support Policy in the React Working Group.
 
 - Bumps the minimum required iOS version to 12.0.
 - Updates the native iOS version bindings from Braze Swift SDK 7.5.0 to 8.1.0.
 - Updates the native Android version bindings from Braze Android SDK 29.0.1 to 30.1.1.
 
8.4.0
Added
- Adds support to modify the allow list for Braze tracking properties via the following TypeScript properties and methods:
    
TrackingPropertystring enumTrackingPropertyAllowListobject interfaceupdateTrackingPropertyAllowListmethod- For details, refer to the Braze iOS Privacy Manifest documentation.
 
 - Deprecates the 
setGoogleAdvertisingIdmethod in favor ofsetAdTrackingEnabled.- This new method will now set 
adTrackingEnabledflag on iOS and both theadTrackingEnabledflag and the Google Advertising ID on Android. 
 - This new method will now set 
 - Exposes the 
ContentCardTypesenum through the public TypeScript interface inindex.d.ts. - Updates the native iOS bridge from Braze Swift SDK 7.5.0 to 7.7.0.
 
Fixed
- Fixes the 
hasListenersproperty in the iOS native layer to prevent duplicate symbol errors with other libraries. - Addresses redefinition build errors when using the iOS Turbo Module with statically linked frameworks.
 
8.3.0
Added
- Adds example integrations for Braze Rich Push Notifications and Braze Push Stories to the iOS sample app.
 - Updates the native iOS bridge from Braze Swift SDK 7.3.0 to 7.5.0.
 - Adds support for React Native 0.73.
    
- Removes strict Java version dependencies in the 
build.gradlefile of the Braze library. - Updates the Braze sample app to use React Native version 0.73.1.
 
 - Removes strict Java version dependencies in the 
 
8.2.0
Added
- Updates the native iOS bridge from Braze Swift SDK 7.1.0 to 7.3.0.
    
- This release includes compatibility with Expo Notifications. Refer to the push notification setup documentation for more details.
 
 
Fixed
- Adds a missing update from Braze Android SDK 29.0.0 to 29.0.1 in the 
8.1.0release. 
8.1.0
Added
- Push notification objects are now accessible in the JavaScript layer via new fields on the 
PushNotificationEventinterface.- Deprecates the following fields from the 
PushNotificationEventinterface in favor of the new names that can be used on both iOS and Android:push_event_type-> Usepayload_typeinstead.deeplink-> Useurlinstead.content_text-> Usebodyinstead.raw_android_push_data-> Use theandroidobject instead.kvp_data-> Usebraze_propertiesinstead.
 
 - Deprecates the following fields from the 
 - Adds iOS support for the listener event 
Braze.Events.PUSH_NOTIFICATION_EVENT.- On iOS, only 
"push_opened"events are supported, indicating the user interacted with the received notification. - The iOS event does not support the deprecated legacy fields mentioned above.
 
 - On iOS, only 
 - Adds methods to manually perform the action of an In-App Message or Content Card when using a custom UI.
    
Braze.performInAppMessageButtonAction(inAppMessage, buttonId)Braze.performInAppMessageAction(inAppMessage)Braze.processContentCardClickAction(id)
 - Updates the native iOS bridge from Braze Swift SDK 7.0.0 to 7.1.0.
 
Fixed
- Fixes the 
setLastKnownLocationmethod to sanitize null inputs before calling the native layer.- This previously caused an issue when calling this method on the legacy React Native architecture.
 
 - Updates the native Android bridge from Braze Android SDK 29.0.0 to 29.0.1.
 
8.0.0
Breaking
- Updates the native Android bridge from Braze Android SDK 27.0.1 to 29.0.0.
 - Updates the native iOS bridge from Braze Swift SDK 6.6.0 to 7.0.0.
 - Renames the 
BannerContent Card type toImageOnly:BannerContentCard→ImageOnlyContentCardContentCardTypes.BANNER→ContentCardTypes.IMAGE_ONLY- On Android, if the XML files in your project contain the word 
bannerfor Content Cards, it should be replaced withimage_only. 
 Braze.getFeatureFlag(id)will now returnnullif the feature flag does not exist.Braze.Events.FEATURE_FLAGS_UPDATEDwill only trigger when a refresh request completes with success or failure, and upon initial subscription if there was previously cached data from the current session.
Added
- Adds 
Braze.getUserId()to get the ID of the current user. 
7.0.0
Breaking
- Updates the native Android bridge from Braze Android SDK 26.3.2 to 27.0.1.
 
Fixed
- Fixes the Android layer to record date custom user attributes as ISO strings instead of integers.
 - Fixes a bug introduced in 
6.0.0whereBraze.getInitialUrl()may not trigger the callback on Android. 
Added
- Updates the native iOS bridge from Braze Swift SDK 6.4.0 to 6.6.0.
 - Adds support for nested custom user attributes.
    
- The 
setCustomUserAttributenow accepts objects and arrays of objects. - Adds an optional 
mergeparameter to thesetCustomUserAttributemethod. This is a non-breaking change. - Reference our public docs for more information.
 
 - The 
 - Adds 
Braze.setLastKnownLocation()to set the last known location for the user. - Adds 
Braze.registerPushToken()in the JavaScript layer to post a push token to Braze’s servers.- Deprecates 
Braze.registerAndroidPushToken()in favor ofBraze.registerPushToken(). 
 - Deprecates 
 - Adds 
Braze.getCachedContentCards()to get the most recent content cards from the cache, without a refresh. - Adds support for the Feature Flag method 
logFeatureFlagImpression(id). 
6.0.2
Fixed
- Updates the native Android bridge from Braze Android SDK 26.3.1 to 26.3.2.
 
6.0.1
Fixed
- Adds 
'DEFINES_MODULE' => 'YES'to the iOS Podspec when compiling the Turbo Module to prevent the need for static framework linkage when using the Braze Expo plugin. 
6.0.0
Breaking
- If you are using the New Architecture, this version requires React Native 
0.70or higher. - Fixes the sample setup steps for iOS apps conforming to 
RCTAppDelegate.- ⚠️ If your app conforms to 
RCTAppDelegateand was following our previousAppDelegatesetup in the sample project or Braze documentation, you will need to reference our updated samples to prevent any crashes from occurring when subscribing to events in the new Turbo Module. ⚠️ 
 - ⚠️ If your app conforms to 
 - If your project contains unit tests that depend on the Braze React Native module, you will need to update your imports to the 
NativeBrazeReactModulefile to properly mock the Turbo Module functions in Jest.- For an example, refer to the sample test setup here.
 
 - Updates the native Android bridge from Braze Android SDK 25.0.0 to 26.3.1.
 - Fixes the presentation of in-app messages to match the documented behavior.
    
- Calling 
subscribeToInAppMessagesoraddListenerin the Javascript layer will no longer cause a customBrazeInAppMessageUIDelegateimplementation on iOS to be ignored. - Calling 
Braze.addListenerfor theinAppMessageReceivedevent will subscribe in both the Javascript and the native layers (iOS + Android). This means it is no longer required to callBraze.subscribeToInAppMessage.- Per the Braze documentation, you do not need to explicitly call 
subscribeToInAppMessageto use the default In-App Message UI. 
 - Per the Braze documentation, you do not need to explicitly call 
 - See our documentation for more details around Advanced customization.
 
 - Calling 
 
Added
- Migrates the Braze bridge to a backwards-compatible New Architecture Turbo Module.
    
- This is a non-breaking change to your existing imports of the Braze SDK if you are using React Native 
0.70+. - The Braze SDK continues to be compatible with both the New Architecture and old React Native architecture.
 
 - This is a non-breaking change to your existing imports of the Braze SDK if you are using React Native 
 - Adds the 
getDeviceIdmethod to replacegetInstallTrackingId, which is now deprecated. - Updates the native iOS bridge from Braze Swift SDK 6.3.1 to 6.4.0.
 - Adds a conditional library namespace to the Android 
build.gradlefile to prepare for React Native 0.73, which uses AGP 8.x.- For more details, refer to this React Native announcement.
 
 
5.2.0
Fixed
- Fixes an issue on Android where push notifications wouldn’t be forwarded after the app was closed.
 - Fixes an issue on iOS preventing in-app message subscription events from being sent if 
subscribeToInAppMessageis called prior to anyBraze.addListenercalls. - Changed the Java compatibility version for the Android plugin to Java 11.
 
Added
- Updates the native iOS bridge from Braze Swift SDK 6.2.0 to 6.3.1.
 
5.1.0
Fixed
- Fixes an issue that occured whenever a custom event is logged with dictionary properties using a key named “type”.
 - Removes the automatic assignment of 
BrazeDelegatein the iOS bridge, allowing for custom implementations to be assigned to thebrazeinstance. 
5.0.0
Breaking
- Updates the native iOS bridge from Braze Swift SDK 5.13.0 to 6.2.0.
 - Removes 
setSDKFlavorandsetMetadata, which were no-ops starting from version2.0.0.- On iOS, these fields must be set using the 
Braze.Configurationobject at SDK initialization. - On Android, these fields must be set via the 
braze.xmlfile. 
 - On iOS, these fields must be set using the 
 
Fixed
- Fixes an issue on Android with 
getNewsFeedCards()andgetContentCards()where promises could be invoked more than once. 
Added
- Updates the native Android bridge from Braze Android SDK 24.3.0 to 25.0.0.
 
4.1.0
Fixed
- Fixes an issue in the 
PushNotificationEventobject introduced in2.0.1where a field was namedcontext_textinstead of the correct value ofcontent_text. 
Added
- Adds support for the upcoming Braze Feature Flags product with the following methods:
    
getFeatureFlag(id)getAllFeatureFlags()refreshFeatureFlags()getFeatureFlagBooleanProperty(id, key)getFeatureFlagStringProperty(id, key)getFeatureFlagNumberProperty(id, key)
 - Adds the Braze Event key 
Braze.Events.FEATURE_FLAGS_UPDATEDfor subscribing to Feature Flags updates. 
4.0.0
Breaking
- The iOS bridge now automatically attaches the default In-App Message UI with the 
brazeinstance, without needing to callsubscribeToInAppMessage(). This updates the behavior from2.0.0to simplify integration.- This change doesn’t affect integrations using custom UIs for in-app messages.
 
 - Changes the returned value when subscribing to 
Braze.Events.CONTENT_CARDS_UPDATEDto be aBraze.ContentCardsUpdatedEventobject instead of a boolean.Braze.ContentCardsUpdatedEventcontains acardsproperty which is an array of the Content Cards in the update.- Thanks @Minishlink for your contribution!
 
 
Fixed
- Fixes an issue in the iOS bridge where 
getContentCards()andgetNewsFeedCards()returned data in a different format than the Android bridge. - Fixes the behavior when using the recommended iOS integration where the React Bridge delegate had conflicts with other dependencies. The updated sample app code can be found here.
 
Added
- Updates the native iOS bridge to Braze Swift SDK 5.13.0.
 - Improves typescript definitions for 
addListenerevent types. 
3.0.0
Starting with this release, this SDK will use Semantic Versioning.
⚠ Breaking
- Fixes the behavior in the iOS bridge introduced in version 
2.0.0when logging clicks for in-app messages, content cards, and news feed cards. CallinglogClicknow only sends a click event for metrics, instead of both sending a click event as well as redirecting to the associatedurlfield.- For instance, to log a content card click and redirect to a URL, you will need two commands: ``` Braze.logContentCardClicked(contentCard.id);
 
// Your own custom implementation Linking.openUrl(contentCard.url); ```
- This brings the iOS behavior to match version 
1.xand bring parity with Android’s behavior. 
 
Fixed
- Fixes an issue in the iOS bridge introduced in 
2.0.0wheregetContentCards()andgetNewsFeedCards()would return an array of cards with theurlandimagefields asnull. 
Changed
- Updates the native iOS bridge to Braze Swift SDK 5.11.2.
 - Updates the native Android bridge to Braze Android SDK 24.3.0.
 - Updates 
getContentCardson the iOS bridge to initiate a refresh before returning the array of Content Cards. This brings parity with the Android bridge behavior. 
2.1.0
Added
- Added 
'DEFINES_MODULE' => 'YES'to the Cocoapod’s xcconfig to remove the need for static framework linkage on iOS when using the Braze Expo plugin. 
2.0.2
Fixed
- Removes the usage of Objective-C modules when importing the Braze Swift SDK for improved compatibility with Objective-C++.
    
- When importing 
BrazeKitorBrazeLocation, you must use the#import <Module/Module-Swift.h>syntax:@import BrazeKit;→#import <BrazeKit/BrazeKit-Swift.h>@import BrazeLocation;→#import <BrazeLocation/BrazeLocation-Swift.h>
 
 - When importing 
 
2.0.1
Fixed
- Fixes compatibility issues with newer versions of React Native introduced in 2.0.0.
 - Fixes an issue where callbacks were not being executed for some user attribute methods.
 
2.0.0
⚠ Breaking
- The Braze React Native SDK npm package has moved from 
react-native-appboy-sdkto@braze/react-native-sdk. - Renames 
AppboyReactBridgeandAppboyReactUtilstoBrazeReactBridgeandBrazeReactUtils, respectively. - This version requires React Native 
0.68or higher. - Updates the native iOS bridge to use the new Swift SDK version 5.9.1.
 - During migration, update your project with the following changes in your iOS integration:
    
- To initialize Braze, follow these integration steps to create a 
configurationobject. Then, add this code to complete the setup:1
let braze = BrazePlugin.initBraze(configuration)
 - This migration requires re-identifying users. To do so, you must call the 
changeUsermethod on the Braze instance for non-anonymous users. You can read more about it here. - To continue using 
SDWebImageas a dependency, add this line to your project’s/ios/Podfile:1
pod 'SDWebImage', :modular_headers => true
- Then, follow these setup instructions.
 
 - To use the default In-App Message UI, make sure to call 
subscribeToInAppMessage()or else follow these instructions to add it to your app. - For sample code to help with the migration, reference our sample app and 
AppDelegate.mmfile. - If you are integrating this SDK with an application that uses only Objective-C, create an empty Swift file to ensure that all the relevant Swift runtime libraries are linked. Reference this file from our sample app.
 
 - To initialize Braze, follow these integration steps to create a 
 - The following methods for News Feed are now no-ops on iOS:
    
Braze.launchNewsFeed()Braze.getCardCountForCategories()Braze.getUnreadCardCountForCategories()
 - Updates the native Android bridge to Braze Android SDK 24.2.0.
 
Added
- Adds the following APIs to more easily interface with the News Feed product. Thanks @swissmanu for your contribution!
    
Braze.getNewsFeedCards()Braze.logNewsFeedCardClicked()Braze.logNewsFeedCardImpression()
 
1.41.0
⚠ Breaking
- Removed 
setFacebookData(). - Removed 
setTwitterData(). 
Changed
- Updated the native Android bridge to Braze Android SDK 23.3.0.
 - Exposes 
isControlfield forContentCard. - Removed 
kotlinVersiongradle template variable. To override the Kotlin version used, please use a Gradle dependencyresolutionStrategy. 
1.40.0
⚠ Breaking
- Updated the native Android bridge to Braze Android SDK 23.2.1.
 - Updated the native iOS bridge to Braze iOS SDK 4.5.1.
 
Changed
- Updated the 
Reactpodspec dependency toReact-Core. 
1.39.0
⚠ Breaking
- Renamed the 
kotlin_versiongradle template variable tokotlinVersion. - Updated the native Android bridge to Braze Android SDK 23.2.0.
 
Fixed
- Fixed an issue that caused a NativeEventEmitter warning message to appear.
 
1.38.1
Fixed
- Fixed an issue introduced in 1.38.0 where 
setEmaildid not work as expected on Android. 
1.38.0
⚠ Breaking
- Updated the native Android bridge to Braze Android SDK 23.0.1.
 - Updated the native iOS bridge to Braze iOS SDK 4.5.0.
 - The Braze React Native Android SDK now requires Kotlin directly for compilation. An example is included below:
    
1 2 3 4 5 6 7
buildscript { ext.kotlin_version = '1.6.0' dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } }
 
Added
- Introduced 
Braze.Events.PUSH_NOTIFICATION_EVENTwhich can be used to listen for Braze Push Notification events on Android. See example below:1 2 3 4 5
Braze.addListener(Braze.Events.PUSH_NOTIFICATION_EVENT, function(data) { console.log(`Push Notification event of type ${data.push_event_type} seen. Title ${data.title}\n and deeplink ${data.deeplink}`); console.log(JSON.stringify(data, undefined, 2)); });
 - Added 
Braze.requestPushPermission()to request a permissions prompt for push notifications. 
1.37.0
⚠ Breaking
- The Braze React Native SDK now exports its default object as an ES Module. If you currently import the SDK using 
require(), you will need to now import it as a standard ES Module (e.g.import Braze from "react-native-appboy-sdk"). 
Added
- Introduced 
Braze.subscribeToInAppMessage()which publishes an event to the Javascript layer when an in-app message is triggered and allows you to choose whether or not to use the default Braze UI to display in-app messages. 
1.36.0
⚠ Breaking
- Updated the native Android bridge to Braze Android SDK 21.0.0.
 - Updated the native iOS bridge to Braze iOS SDK 4.4.4.
 - Removed 
setAvatarImageUrl(). - Removed 
logContentCardsDisplayed. This method was not part of the recommended Content Cards integration and can be safely removed. 
1.35.1
Fixed
- Fixed an issue where 
setMetadatadid not have a method implementation for Android. 
1.35.0
⚠ Breaking
- Updated the native iOS bridge to Braze iOS SDK 4.4.2.
 - Drops support for iOS 9 and 10.
 
1.34.1
Fixed
- Fixed an issue where 
getInitialUrlwould not resolve when there is no initial URL. 
1.34.0
⚠ Breaking
- Updated the native Android bridge to Braze Android SDK 18.0.1.
 
Fixed
- Fixed an issue with Content Card types. Thanks @jtparret!
 
Changed
- Improved logging around 
getInitialUrl. 
1.33.1
Fixed
- Fixed an issue introduced in 1.33.0 that caused a build error on iOS.
 
1.33.0
⚠ Breaking
- Updated the native Android bridge to Braze Android SDK 16.0.0.
 - Updated the native iOS bridge to Braze iOS SDK 4.3.4.
 
Added
- Added 
ReactAppboy.addToSubscriptionGroup()andReactAppboy.removeFromSubscriptionGroup()to manage SMS/Email Subscription Groups. - 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.
 
1.32.0
⚠ Breaking
- Updated the native Android bridge to Braze Android SDK 15.0.0.
 - Updated the native iOS bridge to Braze iOS SDK 4.3.2.
 
1.31.0
⚠ Breaking
- Updated the native iOS bridge to Braze iOS SDK 4.3.1.
 
Added
- Added support for new SDK Authentication feature to the Javascript layer. See 
setSdkAuthenticationSignatureon theAppboyinterface, as well as the optionalsignatureparameter onReactAppboy.changeUser. 
1.30.0
⚠ Breaking
- Updated the native iOS bridge to Braze iOS SDK 4.3.0, which fixes a crashing issue with Content Cards when using the default UI.
 - Updated the native Android bridge to Braze Android SDK 14.0.1.
 
1.29.1
⚠️ Known Issues
- This release contains a known issue with the Content Cards default UI on iOS, where showing a “Classic” type card with an image causes a crash. If you are using the default Content Cards UI, do not upgrade to this version.
 
Fixed
- Fixed issue introduced in 1.29.0 where calling 
ReactAppboy.changeUserwould cause an error on Android. 
1.29.0
⚠️ Known Issues
- This release contains a known issue with the Content Cards default UI on iOS, where showing a “Classic” type card with an image causes a crash. If you are using the default Content Cards UI, do not upgrade to this version.
 
⚠ Breaking
- Updated the native Android bridge to Braze Android SDK 14.0.0.
 - Updated the native iOS bridge to Braze iOS SDK 4.2.0.
 
1.28.0
⚠ Breaking
- Updated the native iOS bridge to Braze iOS SDK 4.0.2.
 - Updated the native Android bridge to Braze Android SDK 13.1.2, which contains support for Android 12.
 
Added
- Added support for 
ReactAppboy.setGoogleAdvertisingId()to set the Google Advertising ID and associated ad-tracking enabled field for Android devices. This is a no-op on iOS. 
Fixed
- Fixed an issue where calling 
getInstallTrackingId()while the SDK was disabled would cause a crash on iOS. 
1.27.0
⚠ Breaking
- Updated the native iOS bridge to Braze iOS SDK 3.33.1.
 - Updated the native Android bridge to Braze Android SDK 13.0.0.
 
Added
- Added support for receiving iOS push action button deep links in 
ReactAppboy.getInitialURL(). If you are usingReactAppboy.getInitialURL()and implement iOS push action button categories, add the following code to the beginning of youruserNotificationCenter:didReceiveNotificationResponse:withCompletionHandler::1
[[AppboyReactUtils sharedInstance] populateInitialUrlForCategories:response.notification.request.content.userInfo];
 
1.26.0
⚠ Breaking
- Updated the native iOS bridge to Braze iOS SDK 3.31.2.
 - Updated the native Android bridge to Braze Android SDK 12.0.0.
 
1.25.0
⚠ Breaking
- Updated the native iOS bridge to Braze iOS SDK 3.29.1, which adds improved support for in-app message display on iPhone 12 models.
 - Updated the native Android bridge to Braze Android SDK 11.0.0.
 
1.24.0
⚠ Breaking
- Updated the native iOS bridge to Braze iOS SDK 3.28.0.
 - Updated the native Android bridge to Braze Android SDK 10.1.0. Please read the Braze Android SDK changelog for details.
 
1.23.0
⚠ Breaking
- Updated the native iOS bridge to Braze iOS SDK 3.27.0. This release adds support for iOS 14 and requires XCode 12. Please read the Braze iOS SDK changelog for details.
 
1.22.0
Changed
- Updated the native Android bridge to Braze Android SDK 8.1.0, which contains support for Android 11.
 - Updated the native iOS bridge to Braze iOS SDK 3.26.1, which contains preliminary support for iOS 14.
 
1.21.0
⚠ Breaking
- Updated the native Android bridge to Braze Android SDK 8.0.1.
 - Updated the native iOS bridge to Braze iOS SDK 3.26.0.
 
Added
- Added support for working with in-app messages in the JavaScript layer. In-App Messages can be instantiated using the 
BrazeInAppMessageclass. The resulting object can be passed into the analytics methods:logInAppMessageClicked,logInAppMessageImpression, andlogInAppMessageButtonClicked(along with the button index). See the README for additional implementation details or theAppboyProjectsample app for an integration example. 
Changed
- Improved Typescript definitions for 
setCustomUserAttributeandincrementCustomUserAttribute.- Thanks @janczizikow!
 
 
Fixed
- Fixed incorrect TypeScript definition for 
ContentCard.- Thanks @Hannes-Sandahl-Mpya!
 
 
1.20.0
⚠ Breaking
- Updated the native Android bridge to Braze Android SDK 7.0.0.
 
Added
- Added 
ReactAppboy.requestGeofences()to request a Braze Geofences update for a manually provided GPS coordinate. Automatic Braze Geofence requests must be disabled to properly use this method. 
1.19.0
Breaking
- Updated the native Android bridge to Braze Android SDK 5.0.0.
 - Updated the native iOS bridge to Braze iOS SDK 3.21.3.
 
1.18.0
Breaking
- Updated the native Android bridge to Braze Android SDK 3.8.0.
 
Fixed
- Fixed an issue where 
ReactContext.getJSModule()could be called before the native module was initialized.- Thanks @tszajna0!
 
 
Changed
- Updated the native iOS bridge to Braze iOS SDK 3.20.4.
 
1.17.4
Fixed
- Removed a support library reference in 
AppboyReactBridge.javathat caused Androidx compatibility issues. 
1.17.3
Fixed
- Added 
SDWebImageandHeaderspod directories to theAppboyReactBridgeproject’s Header Search Paths. Thanks @tomauty and @mlazari for your contributions! See https://github.com/braze-inc/braze-react-native-sdk/pull/70 and https://github.com/braze-inc/braze-react-native-sdk/pull/69. 
Changed
- Updated the native Android bridge to Braze Android SDK 3.7.1.
 
1.17.2
Important: This patch updates the Braze iOS SDK Dependency from 3.20.1 to 3.20.2, which contains important bugfixes. Integrators should upgrade to this patch version. Please see the Braze iOS SDK Changelog for more information.
Changed
- Updated the native iOS bridge to Braze iOS SDK 3.20.2.
 
1.17.1
Important: This release has known issues displaying HTML in-app messages. Do not upgrade to this version and upgrade to 1.17.2 and above instead. If you are using this version, you are strongly encouraged to upgrade to 1.17.2 or above if you make use of HTML in-app messages.
Changed
- Updated the native iOS bridge to Braze iOS SDK 3.20.1.
 
1.17.0
Important: This release has known issues displaying HTML in-app messages. Do not upgrade to this version and upgrade to 1.17.2 and above instead. If you are using this version, you are strongly encouraged to upgrade to 1.17.2 or above if you make use of HTML in-app messages.
Breaking
- Updated the native iOS bridge to Braze iOS SDK 3.20.0.
 - Important: Braze iOS SDK 3.20.0 contains updated push token registration methods. We recommend upgrading to these methods as soon as possible to ensure a smooth transition as devices upgrade to iOS 13. In 
application:didRegisterForRemoteNotificationsWithDeviceToken:, replace1 2
[[Appboy sharedInstance] registerPushToken: [NSString stringWithFormat:@"%@", deviceToken]];with
1
[[Appboy sharedInstance] registerDeviceToken:deviceToken];
 ReactAppboy.registerPushToken()was renamed toReactAppboy.registerAndroidPushToken()and is now a no-op on iOS. On iOS, push tokens must now be registered through native methods.
1.16.0
Important This release has known issues displaying HTML in-app messages. Do not upgrade to this version and upgrade to 1.17.2 and above instead. If you are using this version, you are strongly encouraged to upgrade to 1.17.2 or above if you make use of HTML in-app messages.
Breaking
- Updated the native iOS bridge to Braze iOS SDK 3.19.0.
 - Updated the native Android bridge to Braze Android SDK 3.7.0.
 - Note: This Braze React SDK release updates to Braze Android SDK and Braze iOS SDK dependencies which no longer enable automatic Braze location collection by default. Please consult their respective changelogs for information on how to continue to enable automatic Braze location collection, as well as further information on breaking changes.
 - Removes the Feedback feature.
    
submitFeedback()andlaunchFeedback()have been removed from theAppboyinterface.
 
Added
- Added the ability to more easily create custom UIs for Content Cards from within the React Native layer by providing access to card data and analytics methods in Javascript.
    
- Added 
ReactAppboy.getContentCardsfor getting locally cached content cards data.- To request a Content Cards update, use 
ReactAppboy.requestContentCardsRefresh(). 
 - To request a Content Cards update, use 
 - Added 
ReactAppboy.logContentCardsDisplayedfor manually logging an impression for the content card feed. - Added 
ReactAppboy.logContentCardClickedfor manually logging a click to Braze for a particular card. - Added 
ReactAppboy.logContentCardImpressionfor manually logging an impression to Braze for a particular card. - Added 
ReactAppboy.logContentCardDismissedfor manually logging a dismissal to Braze for a particular card. - Added 
ReactAppboy.addListenerfor subscribing toReactAppboy.Events.CONTENT_CARDS_UPDATEDevents.- After a successful update, use 
getContentCardsto retrieve updated cards. - 
            
1 2 3 4
ReactAppboy.addListener(ReactAppboy.Events.CONTENT_CARDS_UPDATED, async function() { let cards = await ReactAppboy.getContentCards(); console.log('Content Cards Updated.', cards); }) 
 - After a successful update, use 
 - See https://github.com/braze-inc/braze-react-native-sdk/pull/58. Thanks @alexmbp!
 
 - Added 
 
1.15.0
Breaking
- Updated the native iOS bridge to Braze iOS SDK 3.17.0.
 - Removed the 
NewsFeedLaunchOptionsenum. Using these arguments withlaunchNewsFeed()had been a no-op since version 1.7.0. 
1.14.0
Breaking
- Updated the native Android bridge to Braze Android SDK 3.5.0.
 
Fixed
- Fixed an issue where logging custom events or purchases without event properties would cause crashes on Android, for example 
logCustomEvent("event"). 
Added
- Added additional TypeScript definitions.
 
1.13.0
Breaking
- Updated the native iOS bridge to Braze iOS SDK 3.15.0.
    
- This release of the iOS SDK added support for SDWebImage version 5.0.
 - Note that upgrading to SDWebImage 5.0 also removed the FLAnimatedImage transitive dependency.
 
 
1.12.0
Breaking
- Updated the native Android bridge to Braze Android SDK 3.3.0.
 
Added
- Added 
ReactAppboy.launchContentCards()for launching the content cards UI. 
1.11.1
Added
- Added Typescript definitions for the 
Appboyinterface.- Thanks @ahanriat and @josin for your contributions! See https://github.com/braze-inc/braze-react-native-sdk/pull/57 and https://github.com/braze-inc/braze-react-native-sdk/pull/38.
 - Note that certain less-used parts of the API were excluded. Please file an issue if you would like specific method(s) added.
 
 
1.11.0
Breaking
- Updated the native Android bridge to Braze Android SDK 3.2.0.
    
- Added 
AppboyFirebaseMessagingServiceto directly use the Firebase messaging eventcom.google.firebase.MESSAGING_EVENT. This is now the recommended way to integrate Firebase push with Braze. TheAppboyFcmReceivershould be removed from yourAndroidManifestand replaced with the following:1 2 3 4 5
<service android:name="com.appboy.AppboyFirebaseMessagingService"> <intent-filter> <action android:name="com.google.firebase.MESSAGING_EVENT" /> </intent-filter> </service>- Also note that any 
c2dmrelated permissions should be removed from your manifest as Braze does not require any extra permissions forAppboyFirebaseMessagingServiceto work correctly. 
 - Also note that any 
 
 - Added 
 - Updated the native iOS bridge to Braze iOS SDK 3.14.0.
    
- Dropped support for iOS 8.
 
 
Added
- Added support for sending JavaScript 
Date()type custom event and purchase properties through theAppboyinterface. 
1.10.0
Breaking
- Updated the native Android bridge to Braze Android SDK 3.1.0.
 
Added
- Added 
addAlias(aliasName, aliasLabel)to theAppboyinterface to allow aliasing users.- Thanks @alexmbp!
 
 
Changed
- Updated 
build.gradleto useproject.extconfig if available. 
1.9.0
Breaking
- Updated the native iOS bridge to Braze iOS SDK 3.11.0.
 - Updated the native Android bridge to Braze Android SDK 3.0.1.
 - Updated the Android wrapper to use 
apiandimplementationsyntax in it’sbuild.gradleinstead ofcompile. As part of this work, the Android Gradle plugin version was updated to3.2.1. 
Added
- Added 
setUserAttributionData()to theAppboyinterface to allow setting the attribution data for the current user. - Added 
getInstallTrackingId()to theAppboyinterface to allow getting the install tracking id. This method is equivalent to callingAppboy.getInstallTrackingId()on Android and returns the IDFV on iOS. - Added 
setLanguage()to theAppboyinterface to allow setting a language for the current user. - Added 
hideCurrentInAppMessage()to theAppboyinterface to allow hiding of the currently displayed in-app message. 
Fixed
- Fixed an issue where the Android wrapper would include an older version of React Native in test APK builds.
 
Changed
- Updated our sample projects to use React Native 
0.56. 
1.8.1
Changed
- Updated the native iOS bridge to Braze iOS SDK 3.8.4.
 
1.8.0
Breaking
- Updated the native Android bridge to Braze Android SDK 2.7.0.
    
- Important: Note that in Braze Android SDK 2.7.0, 
AppboyGcmReceiverwas renamed toAppboyFcmReceiver. This receiver is intended to be used for Firebase integrations. Please update theAppboyGcmReceiverdeclaration in yourAndroidManifest.xmlto referenceAppboyFcmReceiverand remove thecom.google.android.c2dm.intent.REGISTRATIONintent filter action. 
 - Important: Note that in Braze Android SDK 2.7.0, 
 - Updated the native iOS bridge to Braze iOS SDK 3.8.3.
 
Added
- Added 
setLocationCustomAttribute()to theAppboyinterface to allow setting of custom location attributes. 
1.7.3
Added
- Added 
requestLocationInitialization()to theAppboyinterface. Calling this method is the equivalent of callingAppboyLocationService.requestInitialization()on the native Braze Android SDK. The method is a no-op on iOS. 
1.7.2
Fixed
- Fixed an issue introduced in 
1.7.0where callinglaunchNewsFeed()would cause crashes in the Android bridge. 
1.7.1
Fixed
- Updated the podspec to point to Braze iOS SDK version 3.5.1.
 
1.7.0
Breaking
- Updated the native iOS bridge to Braze iOS SDK 3.5.1.
 - Updated the native Android bridge to Appboy Android SDK 2.4.0.
 
Added
- Added 
Other,Unknown,Not Applicable, andPrefer not to Sayoptions for user gender. - Updated the 
AppboyProjectsample app to use FCM instead of GCM. - Added toasts to provide feedback for user actions in the 
AppboyProjectsample app. - Implemented 
requiresMainQueueSetupinAppboyReactBridge.mto prevent warnings in React Native 0.49+.- See https://github.com/braze-inc/braze-react-native-sdk/pull/39. Thanks @danieldecsi!
 
 
Changed
- Passing launch options into 
launchNewsFeed()is now a no-op. 
1.6.0
Breaking
- Updated the native iOS bridge to Braze iOS SDK 3.3.3.
 - Updated the native Android bridge to Braze Android SDK 2.2.5.
 
Added
- Added support for wiping all customer data created by the Braze SDK via 
Appboy.wipeData().- Note that on iOS, 
wipeData()will disable the SDK for the remainder of the app run. For more information, see our iOS SDK’s documentation fordisableSDK. 
 - Note that on iOS, 
 - Added 
Appboy.disableSDK()to disable the Braze SDK immediately. - Added 
Appboy.enableSDK()to re-enable the SDK after a call toAppboy.disableSDK().- Note that on iOS, 
enableSDK()will not enable the SDK immediately. For more information, see our iOS SDK’s documentation forrequestEnableSDKOnNextAppRun. 
 - Note that on iOS, 
 
Changed
- Removed 
allowBackupfrom the pluginAndroidManifest.xml.- See https://github.com/braze-inc/braze-react-native-sdk/pull/34. Thanks @SMJ93!
 
 
1.5.2
Fixed
- Fixed a race condition between SDK flavor reporting and sharedInstance initialization on iOS.
 
1.5.1
Fixed
- Fixed a bug that caused opted-in subscription states to not be reflected on the user profile.
 
1.5.0
Breaking
- Updated the native iOS bridge to Braze iOS SDK 3.0.0 or later.
 - Updated the native Android bridge to Braze Android SDK 2.2.4.
 - Changed success callbacks on 
submitFeedback()on Android to always returntrueassubmitFeedback()was changed to returnvoidin the native SDK. 
1.4.1
Added
- Added support for apps that use use_frameworks in Podfile.
    
- See https://github.com/braze-inc/braze-react-native-sdk/commit/6db78a5bbeb31457f8a1dcf988a3265d8db9a437 and https://github.com/braze-inc/braze-react-native-sdk/issues/29. Thanks @jimmy-devine and @sljuka.
 
 
1.4.0
Breaking
- Updated the native iOS bridge to Braze iOS SDK 2.31.0 or later.
 - Updated the native Android bridge to Braze Android SDK 2.1.4.
 
Added
- Added 
ReactAppboy.registerPushToken()for registering push tokens with Braze.- See https://github.com/braze-inc/braze-react-native-sdk/pull/13. Thanks @dcvz!
 
 - Added the local 
react-native-appboy-sdkPodspec for integrating the React Native iOS bridge via Cocoapods.- See https://github.com/braze-inc/braze-react-native-sdk/pull/15. Thanks @pietropizzi!
 
 
1.3.0
Breaking
- Updates the native iOS bridge to use Braze iOS SDK 2.29.0, which drops support for iOS 7.
 - Updates the native Android bridge to use Braze Android SDK 2.0.0.
 
Added
- Adds 
ReactAppboy.requestImmediateDataFlush()for requesting an immediate flush of any data waiting to be sent to Braze’s servers. - Adds 
ReactAppboy.requestFeedRefresh()for requesting a refresh of the News Feed.- See https://github.com/braze-inc/braze-react-native-sdk/pull/12. Thanks @stief510!
 
 - Added the ability to pass an optional dictionary of News Feed launch options to 
launchNewsFeed(). SeeNewsFeedLaunchOptionsfor supported keys.- For more information on currently supported 
NewsFeedLaunchOptionskeys, see the card width and card margin properties on ABKFeedViewController. - See https://github.com/braze-inc/braze-react-native-sdk/pull/10. Thanks @mihalychk!
 
 - For more information on currently supported 
 
1.2.0
Breaking
- Updates the native iOS bridge to be compatible with React Native v0.40.0.
 
Changed
- Updates the AppboyProject sample project to React Native v0.41.1.
 
1.1.0
Breaking
- Update Required — Fixes a bug in the iOS bridge where custom attribute dates were converted incorrectly, causing incorrect date data to be sent to Braze. As a result of the fix, 
setDateCustomUserAttribute()in the iOS React bridge may now only be called with a double.- Note: The default Javascript Braze interface has not changed, so for most integrations this just requires updating the SDK, unless you were manually calling our iOS bridge outside of our recommended integration.
 - See https://github.com/braze-inc/braze-react-native-sdk/issues/7
 
 
1.0.0
Breaking
- Update Required — Updates iOS push handling in the AppboyProject sample project to be compatible with iOS 10. For more information, refer to the CHANGELOG for Braze iOS SDK v2.24.0.
 
Added
- Adds callbacks to the native bindings to provide function call results to React Native.
 - Exposes 
ReactAppboy.getCardCountForCategories()andReactAppboy.getUnreadCardCountForCategories()for retrieving News Feed card counts.- See https://github.com/braze-inc/braze-react-native-sdk/issues/1
 
 - Adds 
ReactAppboy.getInitialURL()for handling deep links when an iOS application is launched from the suspended state by clicking on a push notification with a deep link. SeecomponentDidMount()inAppboyProject.jsfor a sample implementation. - Exposes 
ReactAppboy.setTwitterData()andReactAppboy.setFacebookData()for Twitter and Facebook integration.- See https://github.com/braze-inc/braze-react-native-sdk/issues/4
 
 
Changed
- Targets Braze Android SDK version 1.15.3 and Braze iOS SDK version 2.24.2.
 - Updates the AppboyProject sample application to React Native v0.33.0.
 - Updates the AppboyProject sample project to integrate session handling and in-app message manager registration using an AppboyLifecycleCallbackListener, as introduced in Braze Android SDK v1.15.0.
 
Removed
- Removes 
AppboyBroadcastReceiver.javafrom the AppboyProject sample project, as Braze Android SDK v1.15.0 removes the need for a customAppboyBroadcastReceiverfor Braze push notifications. 
0.3.0
Changed
- Renames Android module to conform to rnpm standard.
 
0.2.0
Changed
- Refactors Android module to have the source directly under the 
androidfolder. 
0.1.0
- Initial release. Targets Braze Android SDK version 1.12.0 and Braze iOS SDK Version 1.18.4.
 
   Edit this page on GitHub