All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Update Android SDK from 5.1.37 to 5.1.38
- Update Android SDK from 5.1.37 to 5.1.38
- Feat: Detect for timezone changes and update the user (#2378)
- Feat: Detect for timezone changes and update the user (#2378)
- Fix: ANR on POST to Outcomes endpoint (#2371)
- Fix: ANR on POST to Outcomes endpoint (#2371)
- add: security hardening around webview javaScriptEnabled (#2377)
- add: security hardening around webview javaScriptEnabled (#2377)
- Update iOS SDK from 5.2.14 to 5.2.15
- Update iOS SDK from 5.2.14 to 5.2.15
- Add confirmed deliveries for live activities notifications for OneSignal-aware activities (OneSignal/OneSignal-iOS-SDK#1592)
- Add confirmed deliveries for live activities notifications for OneSignal-aware activities (OneSignal/OneSignal-iOS-SDK#1592)
- New Log Listener methods to allow an app developer to capture logs as strings at runtime. The log listener is independent of logLevel, all message are always sent to listeners. Please see linked PR for example usage (OneSignal/OneSignal-iOS-SDK#1580)
- New Log Listener methods to allow an app developer to capture logs as strings at runtime. The log listener is independent of logLevel, all message are always sent to listeners. Please see linked PR for example usage (OneSignal/OneSignal-iOS-SDK#1580)
- Prevent extra server calls to send duplicate live activity requests (OneSignal/OneSignal-iOS-SDK#1589)
- Prevent extra server calls to send duplicate live activity requests (OneSignal/OneSignal-iOS-SDK#1589)
- Fix an
NSInvalidArgumentExceptionthat happens on rare occasions when localized description is not copied properly (OneSignal/OneSignal-iOS-SDK#1594) - Fix an
NSInvalidArgumentExceptionthat happens on rare occasions when localized description is not copied properly (OneSignal/OneSignal-iOS-SDK#1594)
- Updated included Android SDK from 5.1.31 to 5.1.37
- [Fix] IAM not shown when calling login immediately after init
- [Fix] IAM now showing after switching to 3-button-navigation mode
- [Fix] very rare bug where app doesn't opening from notification tap when it cold starts the app
- [Fix] NPE when accessing WindowInsets used in isKeyboardUp()
- [Fix] NotificationOpenedActivity "freeze" when a large amount of notification is clicked
- [Fix] Crash when adding alias with some labels
- [Fix] Crashes with Amazon IAP tracking by dropping support for this
- [Fix] Push subscription observers not firing
- [Fix] Handle in-app messages dismissed by back press
- [Fix] Android 7 and lower crashes with getParameterCount calls
- [Fix] Logout incorrectly uses the old subscription ID
- [Fix] NPE in PermissionsActivity
- [Fix] Fix parsing subscriptions from server, and improve handling of deleted push subscriptions
- [Fix] Multiple create subscription operations exist without token
- [Fix] Finishing the activity on main thread when a notification is opened
- [Feature] Adds the following new public methods (#2311):
- OneSignal.Debug.addLogListener
- OneSignal.Debug.removeLogListener
- For full changes, see the native release notes
- Updated included iOS SDK from 5.2.10 to 5.2.14
- [Fix] Synchronize to fix crashes in the user module
- [Fix] Prevent deadlocks when user manager runs its startup tasks
- [Fix] Bug when notification has badge set to zero
- [Fix] drop deprecated applicationIconBadgeNumber usage
- [Improvement] Ensure push tokens are registered for existing Live Activities during setup
- For full changes, see the native release notes
- [Fix] Missing .meta Android Migration files Unity editor error
- Updated included Android SDK from 5.1.26 to 5.1.31
- [Compatibility] Unity 6 build error with Android
- [Fix] Incorrect activity path for NotificationOpenedActivityHMS
- [Fix] Anonymous Login request not cleared if app is forced close within 5 seconds on a new install
- [Fix] V4 to v5 upgrade will migrate app ID
- [Fix] Notification click not foreground the app in the first click if app is closed and no clickListener is added
- [Fix] Subscription/IAM not updated after upgrading from 5.2.0-beta or between 5.1.9 to 5.1.27
- [Fix] ANR caused by model.add(), model.initializeFromJson(), or modelstore.load()
- For full changes, see the native release notes
- Updated included iOS SDK from 5.2.9 to 5.2.10
- [Fix] Requiring privacy consent blocks confirmed deliveries indefinitely
- [Fix] Detect for timezone changes and update the user
- For full changes, see the native release notes
- Updated included Android SDK from 5.1.25 to 5.1.26
- [Fix] ANR caused by operationRepo.enqueue while loading is in progress
- [Fix] Check subscription Id before executing delete and update subscription operations
- For full changes, see the native release notes
- Updated included iOS SDK from 5.2.8 to 5.2.9
- [Fix] Use new OneSignalClientError type for callbacks which fixes crash report of NSInvalidArgumentException
- [Fix] Don’t evaluate in app messages when paused which fixes issues with duration-since-last In-App Messages when pausing and unpausing
- For full changes, see the native release notes
- Updated included Android SDK from 5.1.24 to 5.1.25
- Fix NullPointerException from getScheduleBackgroundRunIn
- For full changes, see the native release notes
- Updated included iOS SDK from 5.2.7 to 5.2.8
- Fix [__NSPlaceholderDictionary initWithObjects:forKeys:count:] crashes caused by nil HTTPResponse headers
- For full changes, see the native release notes
- Updated included Android SDK from 5.1.21 to 5.1.24
- Pausing in-app messages now dismisses any currently displaying in-app messages
- Fix setting consentGiven throwing if called before initWithContext
- Fix BadTokenException and WindowLeaked exception caused by showing a dialog on a finishing or destroyed activity
- For full changes, see the native release notes
- Updated included iOS SDK from 5.2.4 to 5.2.7
- Pausing in-app messages now dismisses any currently displaying in-app messages
- Don't use cached in-app messages if the SDK encounters an error fetching them or when the server returns none
- Improve segment membership calculation that allows for fetching more accurate and updated in-app messages for a user
- For full changes, see the native release notes
- Updated included Android SDK from 5.1.20 to 5.1.21
- Fix ending an already ended session
- Fix permissions returned by onRequestPermissionResult when the list is empty
- Fix keyboard input in HTML in-app messages
- For full changes, see the native release notes
- Updated included Android SDK from 5.1.17 to 5.1.20
- Optimized the initialization process by moving some service initialization to a background thread
- Recover null onesignal ID crashes for Operations
- Add option to default to HMS over FCM
- Prevent retrying IAM display if 410 is received from backend
- Fix dynamic triggers showing IAM repeatedly after being dismissed
- For full changes, see the native release notes
- Updated included iOS SDK from 5.2.2 to 5.2.4
- Handle incorrect
404by delaying making updates to new users or subscriptions - The user executor needs to uncache first which fixes some cached requests being dropped for past users
- Omit misleading fatal-level log for cross-platform SDKs
- For full changes, see the native release notes
- Handle incorrect
- Updated SDK to support Live Activities PushToStart and added a concept of a "Default" Live Activity to facilitate easier adoption. Please check out https://documentation.onesignal.com/docs/push-to-start-live-activities for more information and our example app for an example implementation.
- Updated included Android SDK from 5.1.13 to 5.1.17
- Fixed Xiaomi notification click not foregrounding app
- Fixed FCM push token not being refreshed
- Poll for notification permission changes to detect permission change when prompting outside of OneSignal
- Cold start creates new session and refreshes the user from the server
- Immediately process pending operations when privacy consent goes from false to true
- Fixed OneSignal.Notifications.RequestPermissionAsync() not firing when permission was already granted
- Fixed Operation Model Store adding duplicate operations when the same ones that were previously added to the store and persisted, are re-read from cache
- Fixed a bug causing clicking an unexpanded group notification results in only registering the click result for the final notification in the group
- For full changes, see the native release notes
- Updated included iOS SDK from 5.2.0 to 5.2.2
- Prevent In-App Message request crashes by making null values safe
- Added Dispatch Queues to all executors to prevent concurrency crashes
- Fixed clearing notifications incorrectly such as when pulling down the notification center
- Fixed a purchases bug for the amount spent
- Fixed a build issue for mac catalyst
- Fixed crash when IAM window fails to load by using the main thread
- Network call optimizations: Combine user property updates for network call improvements
- For full changes, see the native release notes
- Additional instance of OneSignal error when calling OneSignal methods in Awake()
- iOS Mac Catalyst build error: Use of undeclared identifier 'OneSignalLiveActivitiesManagerImpl'
- iOS build error: No type or protocol named OSLiveActivities
- Updated included Android SDK from 5.1.10 to 5.1.13
- Fixed the ANR issue caused by prolonged loading of OperationRepo and potentially by extended holding of the model lock during disk I/O read operations
- Fixed IndexOutOfBounds exception thrown from OperationRepo.loadSavedOperations if app was opened offline, some operations done, and then the app is opened again
- Targets JDK11 instead of JDK21 to address build errors encountered on certain development environments using JDK versions below 21
- Fixed grouping skipping opRepoPostCreateDelay, causing operations being applied out of order when multiple login operations are pending
- Fixed cancelling permission request dialog not firing continuation
- Fixed RecoverFromDroppedLoginBug not running in very rare cases
- For full changes, see the native release notes
- Updated included iOS SDK from 5.1.6 to 5.2.0
- Added additional 6 privacy manifests to the 6 sub-targets that are included in the primary targets clients import
- Updated User Defaults API reason to include app groups for appropriate modules
- Fixed rare scenario of dropping data when multiple logins are called
- For full changes, see the native release notes
- Updated included Android SDK from 5.1.9 to 5.1.10
- Handle incorrect 404 responses; add a delay after creates and retries on 404 of new ids
- Added network call optimizations
- For full changes, see the native release notes
- Updated included iOS SDK from 5.1.5 to 5.1.6
- Fixed pending properties from being sent to the incorrect user when quickly changing users
- Fixed crashes when encoding user models
- Fixed crash in OneSignalAttachmentHandler trimURLSpacing method
- Fixed crash when handling a dialog result
- Removed IAM window when an in app message is inactive
- For full changes, see the native release notes
- Updated included Android SDK from 5.1.8 to 5.1.9
- Added AndroidManifest option to override In-App Messages gray overlay and dropshadow
- <meta-data android:name="com.onesignal.inAppMessageHideGrayOverlay" android:value="true"/>
- <meta-data android:name="com.onesignal.inAppMessageHideDropShadow" android:value="true"/>
- Fixed WorkManager not initialized crash
- Fixed don't re-create user on failed remove alias
- Added network call optimizations
- For full changes, see the native release notes
- Added AndroidManifest option to override In-App Messages gray overlay and dropshadow
- Updated included iOS SDK from 5.1.4 to 5.1.5
- Added plist option to hide gray overlay and disable dropshadow for In-App Messages
- OneSignal_in_app_message_hide_gray_overlay
- OneSignal_in_app_message_hide_drop_shadow
- For full changes, see the native release notes
- Added plist option to hide gray overlay and disable dropshadow for In-App Messages
- Updated included Android SDK from 5.1.6 to 5.1.8
- Fixed externalId being skipped and updates to stop if something updates the User (such as addTag) shortly before login is called
- Fixed optIn() not prompting if called before push subscription is created on backend
- Fixed crash with EventProducer's fire events
- Fixed context not being set on all entry points
- For full changes, see the native release notes
- Updated included iOS SDK from 5.1.3 to 5.1.4
- Signed XCFrameworks
- Fixed stuck login requests
- For full changes, see the native release notes
- iOS crash when calling OneSignal.User.PushSubscription.Id and OneSignal.User.PushSubscription.Token when they are null.
- Add public getters for OneSignalId and ExternalId in the User namespace
- Add public event handler OneSignal.User.Changed that fires when the OneSignalId or ExternalId changes
- Updated included Android SDK to 5.1.5
- Duplicate symbol errors when building with other iOS plugins
- Removed READ_PHONE_STATE permission in Android builds. Delete your OneSignalConfig.androidlib and run the "Copy Android plugin to Assets" step in Window > OneSignal SDK Setup to apply the fix.
- Fixed lower build-tools versions being needed for Android builds. Delete your OneSignalConfig.androidlib and run the "Copy Android plugin to Assets" step in Window > OneSignal SDK Setup to apply the fix.
- Updated included Android SDK to 5.1.2.
- Android builds now require the Target API Level to be set to 33 or higher.
- Updated included iOS SDK to 5.1.0
- Included meta files in OneSignalConfig.androidlib to prevent asset from being ignored
- Package download url in the "Sync example code bundle package" step from the OneSignal SDK Setup
- Updated included Android SDK to 5.0.3
InstallEdm4uStepnow imports version 1.2.177 of EDM4U- Updated included Android SDK to 5.0.2
- Updated included iOS SDK to 5.0.2
OneSignalConfig.pluginhas been changed toOneSignalConfig.androidlib. Run the "Copy Android plugin to Assets" step in Window > OneSignal SDK Setup to migrate. Custom notification icons are now located inAssets/Plugins/Android/OneSignalConfig.androidlib/src/main/res
- Sending VSAttribution data from the editor
- iOS notifications clicked event firing if the app was cold started from clicking a notification
- ClassNotFoundException: com.onesignal.OneSignal for Android builds with minify enabled. You must run the "Copy Android plugin to Assets" step in Window > OneSignal SDK Setup.
- Disabled bitcode to avoid iOS build error
- Stop foreground notifications from displaying after calling prevent default on iOS
- Push subscription Id and Token malloc error on iOS
- Removed
SetLaunchURLsInApp - Removed async from location request permission and updated method name to
RequestPermission - Updated included iOS SDK to 5.0.1
- Updated included Android SDK to 5.0.0
- Updated default OneSignal Android notification icons to new logo
- NoSuchMethodError for outcome methods on Android
- Completion check for the Copy Android plugin to Assets setup step
- Updated
Notifications,InAppMessages, andUsermodels to have Pascal Case properties - Updated public API. Please see the updated migration guide for the most up to date signatures.
- Updated included Android SDK to 5.0.0-beta4
- Updated included iOS SDK to 5.0.0-beta-04
- SDK type and version to api headers
- Updated included Android SDK to 5.0.0-beta2
- Updated included iOS SDK to 5.0.0-beta-02
- Migration guide for updating from 3.x.x to 5.x.x
- Overhauled public API of the SDK to a user-centered model. While this release is in beta please see our included example MonoBehaviour for usage.
- Updated included Android SDK to 5.0.0-beta1
- Updated included iOS SDK to 5.0.0-beta-01
If you run into any problems, please don’t hesitate to add to this issue!
- Fixed rare Android ANRs on callbacks firing and also when backgrounding the app.
- Fixed InstallEdm4uStep to work with UPM EDM4U installations
- Android - Lock OneSignal version so it doesn't get bumped to the next major version.
- Renamed
enterLiveActivitytoEnterLiveActivityandexitLiveActivitytoExitLiveActivity - Updated Unity Verified Solutions Attribution script from VspAttribution to VSAttribution
- Resolved serialization depth limit 10 exceeded warning log
- Updated included iOS SDK to 3.12.3
- Added support for OneSignal iOS functionality
enterLiveActivityandexitLiveActivity
- Android builds failing without the Unity iOS module
- Fixed app group name to be a property. Fixes #545
- Log current version number of the OneSignal SDK
- Android
DeleteTagsandRemoveTriggerscalls correctly use a Java array list instead of an array
- Added support for OneSignal Android functionality
promptForPushNotifications - Updated included Android SDK to 4.8.1
- Updated included iOS SDK to 3.11.2
- Added support for OneSignal Android
setLanguagecallbacks
- Updated included Android SDK to 4.7.1
- Explicitly check for a diff and handle overwrites for the
AndroidManifest.xmlbetween the project's and package'sOneSignalConfig.plugin InstallEdm4uStepchecks for version number to determine if step is completed
- iOS build post processor checks for complete presence of extension
- iOS publishing error 90206 when uploading app to Apple.
- iOS builds on Unity on Windows failing on Entitlements file path. Fixes #491
OneSignalXCFrameworkpod version ofOneSignalNotificationServiceExtensiontarget in Podfile of iOS builds will be upgraded if target is present during post processing
- Migration guide for updating from 2.x.x to 3.x.x
- Added support for OneSignal iOS functionality
setLaunchURLsInApp - Improved included README for changing the notification icons in the Android plugin.
- Added inline documentation and Unity idiomatic fields to the
InAppMessageAction
- Android deserialization of
NotificationActiontype now accounts foractionID - Android deserialization of
Notificationtype now accounts foradditionalDatain all cases - Reverted #430 due to a deprecation of where Android resources can be stored in Unity. Notification icons to be changed for Android can again be found at
Assets/Plugins/Android/OneSignalConfig.plugin. Fixes #470 - Example code for
PostNotificationto show an example that works without the API key - Reimplemented support for
RemoveExternalUserId - Reimplemented
disablePushasPushEnabled - iOS deserialization of
Notificationtype now accounts foradditionalDataandrawPayloadin all cases - iOS notifications opened from cold start will be received via
NotificationOpened - Added missing
Notificationfields - Added prefix to the NSExtensionPrincipalClass in the NotificationServiceExtension Info.plist
- Error deserialization for identity methods on Android
- Updated VSP Attribution with the latest version of script
- Moved EDM4U installer step to the core package as it is needed for both platforms
- Checks for VERSION file before attempting to read it
- Added podfile amendments to iOS Append builds
- Include utilities necessary for independent use of the initial unitypackage install
- Removed unused helper method in the iOS post processor which used code from after Unity 2018
- iOS build post processor will determine extension's imported OneSignalXCFramework from the package's dependencies xml. Fixes #442
- iOS callbacks for the
NotificationPermissionChangedevent will no longer cause an il2cpp exception
- Added AndroidManifest with location permissions to the example app to display
PromptLocation InstallEdm4uStepnow imports version 1.2.169 of EDM4U- Log an error in the example app when
RequiresPrivacyConsentis attempted to be set to false from true - Internal state mappings on iOS now rely on class defined objects over dynamic Dictionary types
- Replaced manual manipulation of iOS entitlements in post processing with Unity's ProjectCapabilityManager
- Default export path for notification icons on Android changed to
Assets/Plugins/Android/res - Froze imported OneSignal iOS SDK to 3.10.0 release
- Froze imported OneSignal Android SDK to 4.6.5 release
- Legacy AndroidManifest from past version of imported OneSignal Android SDK
- Legacy Android notification icons
- Included a new setup step from the OneSignal Unity Editor menu (Window > OneSignal) which syncs the example code bundle with the core package version
NotificationPermissionreturn from native SDK no longer raises a casting exception on iOS- Resolved infinite loops on logging initialization conditions
- iOS postprocessing will respect existing entitlement files
- Will no longer init SDK again if done before
RuntimeInitializeOnLoadMethod
- Eliminated syntax only supported on Unity 2020 or above
- Global callbacks on Android are now correctly setup post
initWithContext - Properly push
LogLevelandAlertLevelsettings to native SDKs - Added missing setter to override the detected language. Fixes #416
- Add missing getters for permission and subscription states
- Implemented missing
NotificationpropertiesadditionalDataandactionButtons LogLevelandAlertLevelnow use a custom enum instead of the UnityLogType- Removed
PermissionStatein favor ofNotificationPermissionenum- Renamed
PermissionStateChangedevent toNotificationPermissionChanged
- Renamed
- Correctly namedspaced the common MiniJSON utility to fix #404
- Ensured code distributed with unitypackage would not reference other packages if missing
- Swapped out code that was only available in Unity 2020 for backwards compatible implementations
- Complete overhaul to the public API of the SDK. While this release is in beta please see our included example MonoBehaviour for usage.
- The included OneSignal Android SDK is now fully imported via EDM4U/gradle and will pull the latest version. Please see OneSignal-Android-SDK Releases for latest changes.
- The included OneSignal iOS SDK is now fully imported via EDM4U/Cocoapods and will pull the latest version. Please see OneSignal-iOS-SDK Releases for latest changes.
If you run into any problems, please don’t hesitate to open an issue!
- Included Unity's VSP Attribution code for distribution via the Asset Store.
- Updated included Android SDK to 3.16.2
- Removed use of C# 8.0 features to maintain compatibility
- Updated included Android SDK to 3.16.1
- Avoid continuing with null IAM message Ids #1386
- Updated included iOS SDK to version 2.16.7
- In App Messaging now respects device orientation locks for Unity Applications #1000
- Added a delayed call when attempting to reshow the
OneSignalSetupWindowafter importing packages. - Moved the example code to a separate assembly definition so that it may be utilized in place.
- The EDM4U setup step will rename the
Google.IOSResolver_v1.2.165.dllon import in Unity 2021 and above. See EDM4U issue #441 for more information.
- Updated formatting and documentation within the OneSignalExampleBehaviour.cs example code for clarity.
- Marked
EnabledVibrateandEnableSoundasObsoletewith as they do not function on Android 8+. Please check out https://documentation.onesignal.com/docs/android-notification-categories for more information.
- Fixes rare iOS crash with some apps due to a threading issue. From OneSignal-iOS-SDK PR #979
- Corrected directory separators in post processor when building for iOS in a Windows environment. From PR #376 by @SplenectomY. Fixes #375, #377, #380
- A new Editor window under Window > OneSignal can be found which currently includes additional setup steps for installation.
- The OneSignal Unity SDK has now transitioned to Unity Package Manager support
- If you are updating from a previous version of the OneSignal Unity SDK please follow the Unity Asset Store instructions in the README to ensure a smooth transition.