Releases

Notifee API releases

9.1.0

Notifee no longer uses the GMS libraries and thus should be compatible with open source distribution channels like F-Droid now. Thanks @meypod!

  • feat(android): Remove all gms usages and use guava instead (#510)
  • test(ci, ios): simplify simulator / app interaction
  • test(ci, ios): try more powerful runner, possible de-flake
  • test(ci, ios): allow more time for e2e test

9.0.3

  • fix(ios): use new icon badge APIs / correctly clear badge
  • test(ci): use current path to ccache
  • test(ci, ios): increase yarn install timeout to stop flakes
  • test(ios): commit current pod lockfile
  • style(lint, ios): fix various lint warnings
  • style(lint): clean up warnings from yarn validate:all:js
  • test(ci): use iPhone 16 now, 15 does not exist for Xcode 16
  • test(ci): use hashFiles with specific paths vs globs
  • docs: fix typo "AlarmManger" to "AlarmManager" (#1101)

9.0.2

  • fix(android): rn74 compatibility support invalidate alongside deprecated onCatalystInstanceDestroy

9.0.1

improperly released, 9.0.2 released immediately after

9.0.0

BREAKING CHANGES!

Android 14+ requires two changes to avoid crashes or Play Store rejection

  1. The USE_FULL_SCREEN_INTENT permission is not longer included by default as most apps do not need it. If you need it you must now manually add the permission to AndroidManifest.xml

  2. Foreground Service Types are a strict requirement for Android 14 and require Play Store approval. You must use compileSdk 34 or higher for this release. If you need foreground service types you will need to specify the exact foreground service type permissions in your AndroidManifest.xml and you must replace the service definition in AndroidManifest.xml and you must use the new optional foregroundServiceTypes parameter in the foreground service API call

Thanks to all the contributors that proposed these fixes so that Notifee continues to work well on Android 14 - handling the platform security changes as Google makes new releases is not easy, and they always change the Nofitication API surface API. Notifee would not work without the community contributions.

Note, v8.0.0 was published 2 years ago as an alpha on npmjs.com but is unused. However, the version number was consumed by that alpha publish so we have skipped to v9.

  • fix(android)!: Remove USE_FULL_SCREEN_INTENT permission from package manifest for Android 14 compat (#1027)
  • feat(android)!: allow adding foreground service types dynamically
  • feat(android): add Android 15 FOREGROUND_SERVICE_TYPE_MEDIA_PROCESSING
  • fix(types): add cancelAllNotifications optional android tag property (#1087)
  • build(android): minimal set of changes for compileSdk 34
  • test(lint): check native code formatting in CI
  • style(lint): result of auto-formatting yarn format:all
  • style(lint): constrain formatting globs, add formatting check run scripts
  • docs(android): note apps must now manually add USE_FULL_SCREEN_INTENT if needed

8.0.0

Unreleased

alpha publish from 2022, never made non-alpha, never in use, but version number consumed

7.9.0

  • feat: group support to communication push #1017
  • fix(iOS): Allow the original delegate to handle non-Notifee notifications first #985
  • fix: Remove EventSubcriptionVendor type usage as it's removed in RN0.73 #1001
  • fix(android): fix an issue when using inexact alarms #981
  • style(lint): fix lint errors from previous commits #1073 q- test(ci, ios): ios build behaving strangely - tune timeouts
  • test(example): minimum changes to get example working
  • test(ci): remove log compression pre-artifact upload
  • test(ci): use codecov action vs bash uploader
  • test(ci, ios): switch to macos-14 / apple silicon, iPhone 14
  • test(ci, android): use ubuntu+nested-virt+reactive-circus for emulator tests
  • test(ci): forward port from GITHUB_OUTPUT vs set-output
  • test(ci): bump actions to current versions
  • test(ci): use github built-in concurrency controls
  • style(lint): ignore pubspec.lock files when looking for changes
  • test(android): two alarm manager tests hanging
  • build(deps, ios): Podfile.lock version bumps in test app
  • build(deps): yarn includes information about itself in package.json
  • docs(CONTRIBUTING): auto tag for gh release, point to repo for changelog

7.8.2

  • Fix packaging error / missing dist/version.js #934

7.8.1

  • [Android]: Fix compatibility with android-gradle-plugin 8 (reat-native 0.73+) #907
  • Dev and Test: lots of CI and test updates so all checks are green again and current versions of developer tools work while developing in the repository

7.8.0

  • [Android]: Adds the ability to create all types of alarms with Android, affects the TimestampTriggerAlarmManager API type and deprecates property allowWhileIdle (Addresses issue #655))).
  • [iOS]: Fixes an issue where the UI thread was getting blocked when creating a notification with attachments (Fixes #234))).
  • [Android/iOS]: BREAKING CHANGE: For Expo, there is no config plugin anymore, please remove the plugin from app.config.js (See issue #799 for more info).

7.7.1

  • [iOS]: Adds image caching for the avatar for Communication Notifications (PR #742))).

7.7.0

  • [Android]: Fixes an issue with foreground PRESS event being treated as a background event (Fixes #621).
  • [Android]: Fixes an issue where the event details of a notification were incorrect and were from another notification (Fixes #637 and #651).

7.6.1

  • No changes, used to force npm registry to update for the previous version to appear.

7.6.0

  • [Android]: Fixes an issue with interval triggers firing immediately (Fixes #696).
  • [Android]: Fixes an issue with progress notification with indeterminate set to true (Fixes #682).
  • [Android]: Android flag Flag_NO_CLEAR is now supported but can get the same behaviour with ongoing set to true (Fixes #674).
  • [Android/iOS]: Fixes a ts error with latest React Native version 0.71+ (Fixes #708).
  • [Android]: Fixes an issue where if autoCancel is set to false, for Android actions this was ignored for Android 12 and above (Fixes #697).
  • [Android]: Remove unused android dependenecy okhttp3 which was reported to have been causing a problem (Fixes #699).

7.5.0

  • [Android]: Updates the Android EventBus dependency to comply with the Google Play Store requirements (Fixes #668).

7.4.0

  • [Android]: Fixes an issue when setting a custom launchActivity to ensure the correct activity is launched when a notification is pressed when app is closed (Fixes #646).
  • [Android]: Fixes an issue with Android lights when parsing colors as strings for trigger notifications (Fixes #618).
  • [Android]: Fixes an issue with jest mock where some mocks were not returning the correct type (Fixes #636).
  • [Android]: Adds a new TYPE_FG_ALREADY_EXIST event type for foreground services (PR #634).
  • [iOS]: Removes a debug console.log statement that was commited to the main branch (PR #617).

7.3.0

  • [Android]: Fixes an issue for Android 11 and lower to ensure notification drawer is closed when a quick action is pressed. (Fixes #614).
  • [Android]: Fixes an issue where the initial notification was not set if the app opened via a quick action (PR #605).

7.2.0

  • [Android]: Fixes an issue for Android 12 with quick actions when the app is in the background (Fixes #404).
  • [Android]: Prevents a NullPointerException to occur when a background service is triggered (Fixes #592).

7.1.0

  • [iOS]: Supports communication notifications on iOS (PR #526).

7.0.4

  • [Android]: Fixes an issue when calling requestPermissions for Android 12 or lower (Fixes #555).

7.0.3

  • [Android]: Fixes an issue that was introduced in v6.0.0 to support targetSdkVersion 33 (Fixes #547).

7.0.1

  • [Android]: Fixes an issue that was introduced in v6.0.0 (Fixes #528).

7.0.0

  • [iOS]: BREAKING CHANGE: Notifee now handles response events (PRESSED, ACTION_PRESSED, DISMISSED) for remote notifications on iOS (PR #236).

    • This allows quick actions from remote notifications to be supported without the need of a NSE [Learn More]

    onNotificationOpenedApp and getInitialNotification from RNFB Messaging will no longer trigger as notifee will handle the event. Should not require any code changes to these RNFB event handlers, as events on Android will continue to work as normal

6.0.0

  • [Android] BREAKING CHANGE: Added support for requesting permission on Android 13 via requestPermission, the minimum compileSdkVersion required has increased to 33. And, to support this feature, the targetSdkVersion must also be increased to 33.

5.7.0

  • [iOS]: Adds new interruptionLevel property to NotificationIOS which provides the option to display time-sensitive notifications (Fixes #287).

5.6.0

  • [Android]: Adds new loopSound and flags properties to NotificationAndroid to support custom flags and to loop the sound when a push notification is displayed (Fixes #454).

5.5.0

  • [Android]: Fixes a compile issue for monorepos where sometimes app.notifee:core:+ cannot be found (Fixes #350).
  • [iOS]: Adds new list and banner options to IOSForegroundPresentationOptions on iOS. These new options should be used as a replacement for the alert option which is now deprecated in notifee; notifee will fallback to using Apple's UNNotificationPresentationOptionAlert option for iOS 13 when either banner or list is set to true. There are no breaking changes, but we encourage you to update your project as soon as you can if you set custom IOSForegroundPresentationOptions. To learn more, view the Foreground Notifications documentation (Enhancement #382).

5.4.1

  • [Android]: Fixes an issue when creating a one-time trigger notifications with AlarmManager (Fixes #445).

5.4.0

  • [Android]: Fixes an issue when recreating the trigger notifications after a reboot with AlarmManager (Fixes #422).
  • [Android]: Fixes an issue around displaying a heads-up notification on Xiaomi devices by adding the permission ACCESS_NOTIFICATION_POLICY to the AndroidManifest (Fixes #296).

5.3.0

  • [Android]: Elimates the need to add the local maven repository manually to your project (PR #414).
  • [Android]: Implements support to light up the screen when a notification is displayed. Introduces a new property lightUpScreen on the NotificationAndroid interface (PR #403).

5.2.2

  • [Android]: Allows repeatFrequency to be set to -1 when creating notifications (Fixes #384).
  • [Android]: Fixes an issue with rescheduling notifications with alarm manager (Fixes #384).

5.2.1

  • [Android]: Fixes a build issue introduced in version 5.2.0 (PR #384).

5.2.0

  • [Android]: Fixes a compiling issue for some project configurations with error message "Project with path ':app' could not be found in project ':notifee_react-native'" (Fixes #288).
  • [Android]: Fixes an issue where the current version of Notifee does not build when using an expo managed app with the expo plugin (Fixes #314).
  • [Web]: Basic support for react-native-web - notifications do not work on web yet, but the package is now compatible with web (PR #369)

5.1.0

  • [Android]: Introduces new APIs to help manage Android 12 limitations when creating trigger notifications:
  • canScheduleExactAlarms
  • openAlarmPermissionSettings

And, the ability to check if your app has permissions to create trigger notifications by calling getNotificationSettings().

To learn more, see Triggers documentation for Android.

5.0.3

  • [Android]: Fixes an issue when canceling trigger notifications created via AlarmManager to prevent "Maximum limit of concurrent alarms 500 reached for uid" error being thrown (Fixes #349).

5.0.2

  • [iOS]: Fixes an issue with NotificationSettings returning the wrong property name for authorizationStatus on iOS (Fixes #333).

5.0.1

  • [Android]: Fixes an issue where quick actions always opens the app on Android 12 (Fixes #315).
  • [Android]: Fixes an issue where a quick action with an id of default failed to open the app.

5.0.0

  • [Android/iOS] BREAKING CHANGE: Added support for checking permissions on Android which introduces a breaking change to requestPermission and getNotificationSettings APIs.

Both APIs have been updated to return an object of type NotificationSettings, in replace of NotificationSettingsIOS.

NotificationSettings consists of two properties authorizationStatus and ios, where ios is a nested object of type NotificationSettingsIOS.

To learn more, see Permissions documentation for iOS, and Android.

4.1.0

  • [Android]: Add support to set largeIcon for AndroidStyle.BIGPICTURE to null (Fixes #270)
  • [Android]: Fixes an issue with Android 12 when tapping on a notification (Fixes #250)
  • [Android]: Fixes an issue when an action is pressed where the notification drawer would remain open with the notification (Fixes #268)

4.0.1

  • [Android]: Fixes an issue with repeating trigger notifications where the next notification was scheduled at the incorrect time, causing the notification to infinitely display (Fixes #252).

4.0.0

  • [Android]: BREAKING CHANGE : the minimum compileSdkVersion required has increased to 31, to fix an issue with Android 12 where the app will crash due to a missing Intent immutability flag (Fixes #238). You do not need to alter targetSdkVersion or anything else - but you must increase compileSdkVersion to 31. Please note, JDK11 is strongly recommended when using compile or target sdk 31. Please note, we do not correctly handle the new "exact alarm" Android 12 restrictions so we recommend staying on targetSdkVersion 30 for now.

3.0.4

  • [Android]: Fixes an issue with buildtools to support gradle plugin 4.2+ (Fixes #211)
  • [iOS]: Fixes an issue that was introduced in the previous patch when calling setBadgeCount with 0 (Fixes #212)

3.0.3

  • [iOS]: Fix iOS API availability guards, and all compile warnings (Fixes #204)

3.0.2

  • [Android]: Include support for expo managed projects [Learn More]]
  • [Android]: Adds support for Android 12

3.0.1

  • [Android]: Fixes an issue where the wrong quick action was triggered when fired in quick succession (Fixes #121)
  • [Android]: Fixes an issue where notifications created by FCM were not being removed from the notification tray when cancelled (Fixes #120)
  • [iOS]: Compiled module no longer depends on a XCFramework, as part of the migration to fully open source the library. [Learn More]

3.0.0

  • [Android]: BREAKING CHANGE - the minimum SDK version has been updated from 16 to 20, providing backwards notification compatibility up to Android 4.4W.
  • [Android]: Fixes an issue with getDisplayedNotifications where the id returned is not the original notification id. (Fixes #381)
  • [Android]: Fixes an issue with displaying a notification with android.tag (Fixes #382)
  • [Android]: Introduces support to cancel a notification with a tag
  • Removed licensing validation and related code - Notifee is now free and fully open source. [Learn More]

2.0.0

  • [Android]: BREAKING CHANGE - you must add a new maven local repository to your android/build.gradle file. (Fixes #151). See step #2 in the installation guide

1.11.0

  • [Android]: Fixes an issue where getInitialNotification was sometimes throwing an error leading to a crash if activity was null. (Fixes #374)

1.11.0

  • [Android]: Fixes an issue where the initial notification wasn't being populated for full-screen actions.
  • [iOS]: Introduces a new method signature for NotifeeExtensionHelper.populateNotificationContent where the request is passed down as well as the bestAttemptContent. View the Remote Notification Support documentation for more information.
  • [iOS]: Adds a note in the reference documentation that getInitialNotification() for iOS is deprecated in favour of onForegroundEvent.

1.10.1

  • [Android]: Fixes an issue on Android to prevent cancelDisplayedNotifications cancelling trigger notifications. (Fixes #349)

1.10.0

  • [Android/iOS]: Introduces the following APIs:
    • getDisplayedNotifications
    • getTriggerNotifications
    • isChannelBlocked
    • isChannelCreated
    • cancelAllNotifications(ids)
    • cancelDisplayedNotifications(ids)
    • cancelTriggerNotifications(ids)
  • BREAKING: Fixes an issue when setting a custom sound on a notification channel (Fixes #341). Sounds now must be specified without the file extension, previously it was optional. If you were using custom sounds on Android>7 prior to this, you will need to create a new notification channel or the reference to your custom sound on the channel will likely not survive app updates. We apologize for the inconvenience

1.9.2

  • [Android]: Fixes an issue where an error is thrown when the intent was null in rare cases for foreground service events.

1.9.1

  • [Android]: Fixes an issue where an error is thrown when using trigger notifications with AlarmManager on Android 8 & 7

1.9.0

  • [Android]: Support Alarm Manager for trigger notifications.
  • [iOS]: Xcode 12.4 and above is now supported

1.8.1

  • [Android/iOS]: Fix npm bundle to exclude example app

1.8.0

  • [Android/iOS]: Include support for jest tests by including a jest-mock.js file.
  • [Android]: Add an extra safety check to prevent app from crashing if a launchActivity property is set to an invalid activity class.

1.7.0

  • [Android/iOS]: Allows title, body, and subtitle to be set to undefined in addition to string values to prevent an empty space on Android.
  • [Android/iOS]: Updated validation to only throw an error for platform-specific properties if the app is running the same platform (Feature enhancement #297).
  • [iOS]: Xcode 12.5 is required on iOS.

1.6.0

  • [Android]: Fixed an issue with jwt gradle build dependency.

1.5.0

  • [Android]: Implemented support for notifee.hideNotificationDrawer (Feature enhancement #200).

1.4.0

  • [Android]: Added support for fullScreenAction on NotificationAndroid (Feature enhancement #45).

1.3.1

  • [Android]: Fixed an issue where sometimes the app would throw an exception when the user changes the notification blocked state for either a channel or the entire application (Fixes #237).

1.3.0

  • [Android]: Fixed an issue where sometimes the foreground service failed to stop when calling resolve due to an issue with hot reloading. It can be stopped by notifee.stopForegroundService(). To learn more, view the Foreground Service documentation.

1.2.1

  • [Android]: Fixed an issue with Notifee's build script where sometimes an error would occur that the target variant task already existed.

1.2.0

  • [iOS]: Includes a Notification Service Extension Helper to take advantage of Notifee with remote notifications. To learn more, view the Remote Notification Support documentation.

1.1.2

  • [iOS]: Enforce v1.10+ of CocoaPods (Fixes #230).

1.1.1

  • [Android]: Includes a solution to fix an error due to a potential race condition that occurs when the user changes the notification blocked state for either a channel or the entire application (Fixes #237).

1.1.0

  • [Android]: Implemented support for circularLargeIcon on NotificationAndroid (Feature enhancement #199).
  • [iOS]: Prevent badge count from clearing notifications from the tray when it reaches 0 (Fixes #214).

1.0.0

  • NOTE: Version bump.

0.16.0

  • [Android]: Fixed an issue with license validation on Android 6 (Fixes #87)
  • [iOS]: Added support for Apple Silicon (arm64) and Mac Catalyst builds (Fixes #162, #215)

0.15.2

  • [Android]: Added additional logs to help with debugging license validation issues.
  • [Android/iOS]: Fixed an issue where sometimes the NotifeeApiModule would fail to resolve this.native due to the context changing.

0.15.1

  • [Android]: Fixed an issue where sometimes the largeIcon wouldn't show when the app is closed.
  • [Android/iOS]: Fixed an issue to show a more descriptive warning if the background event handler isn't set via onBackgroundEvent.

0.15.0

  • [Android]: Implemented additional support to help with background restrictions on Android, includes two new methods getPowerManagerInfo and openPowerManagerSettings.
  • [Android]: Fixed an issue with subtitle where the default value was causing two dots on some devices.
  • [Android/iOS]: Added support to cancel either a displayed or a trigger notification.

0.14.0

  • [Android]: Fixed an issue where isBatteryOptimizationEnabled was returning the result as an object instead of a boolean.
  • [Android]: Fixed an issue where openBatteryOptimizationSettings was sometimes throwing an exception for Samsung and Oppo phones on Android versions 6.0.
  • [iOS]: Fixed an issue when a notification is pressed while the app is in the background on iOS 14, which sometimes would cause the app to crash.

0.13.2

  • [Android]: Fixed an issue where trigger notifications created with v0.12.x and below would cause the app to crash when upgrading to v0.13.x.

0.13.1

  • [iOS]: Added support to handle remote urls for Attachments.
  • [iOS]: Added iOS support for repeatFrequency on TimestampTrigger. See Triggers.

0.13.0

  • [Android]: Added support for repeatFrequency on TimestampTrigger to be able to create hourly, daily or weekly trigger notifications. See Triggers.
  • [Android]: Implemented support to help with background restrictions on Android, includes two methods isBatteryOptimizationEnabled and openBatteryOptimizationSettings. See Background Restrictions.
  • [Android]: Fixed an issue when creating a trigger notification, where sometimes the input data would reach the maximum number of bytes allowed.

0.12.3

  • [Android]: Fixed an issue where pressAction with the default id failed to open the app when the notification was pressed.
  • [Android]: Fixed an issue with gradle plugin 4.1 and Build.VERSION_NAME which prevented the app from building.

0.12.2

  • [iOS]: Fixed an issue where the DELIVERED foreground event wasn't being sent for trigger notifications.
  • [iOS]: Fixed an issue with the iOS module that sent events before the JS bundle was ready.

0.12.1

  • [iOS]: Fixed an issue with the iOS module that prevented the library from compiling.

0.12.0

  • [Android]: lightColor and sound are now returned when calling getChannel or getChannels.
  • BREAKING: TimeTrigger has been removed, in favour of TimestampTrigger and IntervalTrigger.
  • [iOS]: Trigger Notifications are now supported on iOS. See Triggers.

0.11.1

  • [Android]: Fixed an issue with cancelNotification for trigger notifications.
  • [Android]: Fixed an issue with remote verification on devices less than or equal to 20
  • [iOS]: Call original delegate when intercepting notification response on iOS

0.11.0

  • [Android]: Add support for Trigger Notifications on Android. See Triggers.
  • [Android]: Fixed an issue with getChannels and getChannelGroups where the methods were throwing an error
  • [iOS]: Fixed an issue with iOS 14 where sometimes the app would freeze briefly when receiving an push notification

0.10.0

  • [Android]: Fixed an issue with sounds for Android versions < 8.0 (API level 26)
  • [Android]: Fixed an issue with notifee.config.json where sometimes the script could not find the 'app' gradle project automatically.

0.9.0

  • [iOS]: Add support for iOS onBackgroundEvent.
  • [iOS]: Pool JS events until RN Bridge is ready.
  • [Android]: Allow multiple onBackgroundEvent observers when inside a foreground service task.

0.8.0

  • [iOS]: Add support for iOS notification attachments. See iOS Attachments.

0.7.2

  • [iOS]: Fixed an issue where notifications would sometimes not appear in the foreground.

0.7.1

  • [Android]: Fixed an issue where the Headless task key was incorrect for the foreground service task.update

0.7.0

0.6.1

  • [Android]: Fixed an issue with Android proguard rules that may have prevented the library from being used when minified.

0.6.0

  • [Android]: notifee.config.json now supports specifying options for build flavours & types.
  • [TypeScript]: Reworked type definitions to fix minor definition issues.
  • BREAKING: Importance has now been renamed to AndroidImportance and is no longer supported on iOS (replaced with foregroundPresentationOptions).
  • [iOS]: Implemented support for ios.foregroundPresentationOptions to control foreground notification behaviour on iOS
  • [Android]: Fixed an issue where creating multiple channel or channelGroups would fail to create.
  • [Android]: requestPermission now correctly resolves a dummy instance of IOSNotificationSettings (previously null on Android) for cross-platform compatibility.
  • [Android]: largeIcon & picture (from big picture style) now supports React Native asset loading, e.g. largeIcon: require('./image.png').