Live Activities can now be launched on a user's screen when the mobile app is in the background (app is not open). Live Activities can both be started and updated by a remote push notification.
Android's Live Notifications deliver live, dynamic content in notifications to enhance user engagement and app interactivity. This is a feature similar to iOS's Live Activities feature (introduced with iOS 16), but uses its own set of tools and APIs that enable similar functionalities.
As we continue to improve our systems with the new User Model updates, we found a bug in our Android User Model SDK that is causing an exceptional load on our API. To resolve this issue for your app, we ask that you immediately upgrade to the latest version of our SDKs (minimum versions below) and release the updated version of your app as soon as possible:
We have added Audience Activity reports for Journeys so you can get a closer look at which subscriptions were sent messages during a Journey. To view this report, click into a message report on your Journey. Learn more here.
We have added documentation on the Subscription Trends report, as well as other metrics on the Dashboard.
We have added a new Analytics Setup guide to our product documentation detailing how to track Confirmed Deliveries and set up Custom Outcomes with support from your development team.
We recommend updating to the versions listed below or higher if available.
iOS SDK 5.1.3
⚠️ Behavior Changes
- When you call the
jsonRepresentation
method ofOSPushSubscriptionState
, if a property is null, the value will now be""
instead of the string literal"nil"
in #1373
🐛 Bug Fixes & Misc Improvements
- Rename internal method that was called
setSharedInstance
to workaround false App Store flagging in #1375 - Improve Swift concurrency safety to address crash reports in production #1376
- For our server: Add
OneSignal-Subscription-Id
to Create User request which improves last_active data in #1372
Android (Google) SDK 5.1.6
🐛 Bug Fixes
- Make ServiceBuilder.getService thread safe (#2012)
- 4.x.x migration: Missing onesignalId during initWithContext (#2009)
🔧 Maintenance
- [Internal only] Upgraded
compileSdkVersion
to34
(#1994)- Apps can still use Android compile SDK 33, target SDK version unaffected
- [Internal only] Added nested
JSONObject
support toJSONObject.toMap()
(#2004) - [Internal only] Upgrade tests to JUnit5 and Kotest to 5.8.0 (#2006)
Android (Huawei) SDK 4.8.8
✨ Enhancements
- Add setting to prefer HMS over FCM #1984
- Add under your tag if you like to use this setting.
- See OneSignal's Prefer HMS over FCM documentation page for more details.
🐛 Bug Fixes
- Attempt retrying OutOfMemoryError errors when starting threads. #2027
- Make sure your app doesn't have any memory leaks and is handling onTrimMemory so the
- SDK can move on once memory is free
- Fix rare null crash with
taskQueueWaitingForInit.poll()
#2026 - Fix rare null crash with
timeFocusedAtMs
#2025
Unity SDK 5.1.1
- Changed
- Updated included Android SDK to 5.1.6
- Updated included iOS SDK to 5.1.3
React Native/Expo SDK 5.1.0
🎉 New Methods 🎉
- Add getter for
onesignalId
andexternalId
and a UserState Observer to be notified of changes in [#1627]- See the User Namespace API Reference in the Migration Guide for usage
- Add asynchronous getter methods for Notifications
permission
and Push Subscriptiontoken
,id
,optedIn
in [#1649]- 🛑 Deprecated methods 🛑
Notifications.hasPermission
,User.pushSubscription.id
,User.pushSubscription.token
, andUser.pushSubscription.optedIn
are now deprecated but non-breaking.
- 🛑 Deprecated methods 🛑
- See the Push Subscription Namespace API Reference and Notifications Namespace API Reference in the Migration Guide for usage of new methods
getPermissionAsync
,getIdAsync
,getTokenAsync
, andgetOptedInAsync
.
⚠️ Minor Breaking Change ⚠️
- API update for PushSubscriptionState: the Push Subscription observer will now be passed nullable properties. Please account for the possibility of the push subscription token and id being null.
Native Changes
- Bump Android Native Version to 5.1.6
- Bump iOS Native Version to 5.1.3
Flutter SDK 5.1.2
🔧 Native SDK Dependency Updates Only
- Update Android SDK from 5.1.2 to 5.1.6
- Update iOS SDK from 5.1.0 to 5.1.3
- Includes fix to improve Swift concurrency safety to address crash reports in production: link
Cordova/Ionic SDK 5.1.0
🎉 New Methods 🎉
- Add getter for
onesignalId
andexternalId
and a UserState Observer to be notified of changes in [#959]- See the User Namespace API Reference in the Migration Guide for usage
- Add asynchronous getter methods for Notifications
permission
and Push Subscriptiontoken
,id
,optedIn
in [#977]- ⚠️ Previous methods
Notifications.hasPermission
,User.pushSubscription.id
,User.pushSubscription.token
, andUser.pushSubscription.optedIn
are now deprecated but non-breaking. ⚠️ - See the Push Subscription Namespace API Reference and Notifications Namespace API Reference in the Migration Guide for usage of new methods
getPermissionAsync
,getIdAsync
,getTokenAsync
, andgetOptedInAsync
.
- ⚠️ Previous methods
Native Changes
- Bump Android Native Version to 5.1.6
- Bump iOS Native Version to 5.1.3
.NET MAUI SDK 5.1.1
This release includes new native SDK versions that resolve multiple crashes and issues.
Native SDK Updates
- Bump iOS Native Version to 5.1.3
- Bump Android Native Version to 5.1.6
Growth plans now have access to our powerful sequence automation tool. The Growth plan includes 3 Journeys. See here for more pricing information.
Create a Journey to:
- Onboard new users
- Promote sales and events
- Re-engage lapsed users
- And more!
Prevent emails going to Spam by Auto Warming your sending domain. Learn more at Email Auto Warm Up
Send emails to your audience at a specific time in their own timezone with the new "Custom time per user timezone" option, located in the Email Delivery settings of the editor.
Learn more about Timezone Scheduling for Email