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.
- 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.