=================================
- Added JSON object support to user attributes.
- Handled environment update with same installation.
- BugFix
- Fixed tracked object attributes duplication.
- Notification impression not tracked after app update.
- Reset user completion handler not invoked
- CrashFix
- Fixed crash by handling data race when the application comes to foreground
- Adding support of Array in triggered-based InApps.
- BugFix - Fixed geofence enabled migration with encryption
- Added DC-06 support.
- BugFix - Fixed where notification received event was tracked when SDK was disabled.
- BugFix - Fixed push token migration from 7.x version
- CrashFix: Fixed migration crash from 8.2.0 to 9.17.0
- BugFix - Fixed the issue where push token was not being sent in API call when app group id is missing.
- BugFix - Fixed the issue where API call is made when sdk is disabled.
- BugFix - Fixed the issue where ReInstall was not getting tracked.
- Added support to provide optional deep link callback to MoEngageInAppNativeDelegate protocol via MoEngageInAppConfig.
- Handled UserDefault storage limit
- Fixed the app rejection issue due to privacy manifest
- Added AND Support
- Fixed the issue where Session start was not tracked in some cases.
- Provided callback when force logout is done.
- Added tvOS platform identifier changes
- Remove linking to AdSupport by default.
- BugFix - Fixed crash in network session delegate.
- Refactored network layer.
- Refactored data tracking.
- Refactored logging.
- BugFix - Fixed network client leaking.
- BugFix - Fixed crash in decryption.
- BugFix - Fixed the unnecessary new line rendering in notification.
- Added privacy manifest file
- Added Code signature support for XCFrameworks.
- Updated hashing algorithm usages to SHA256.
- BugFix - Handled removing of invalid value from array of user attribute and parsing the rest.
- BugFix - Fixed redirection URLs being percent encoded.
- BugFix - Bug fix for processing notifications action for Screen-Navigation from Inbox(Notification Center) is not behaving the same in SDK version 9.xx as it used to be in 7.xx series.
- Added notification impression and click API.
- Incorrect model_name tracked for iPhone 14 Pro
- Handled the register/unregister API response in consistent with Android.
- Added new registration state as
sdkOrAccountDisabled
. - Added self-handled inapps for tvOS.
- Added self-handled cards for tvOS.
- Cards in first app
- BugFix - User Registration state will be returned
userNotRegistered
ifunregister
API is called before user is registered. - BugFix - Fixed the common logs issue
- BugFix - Fixed the clicked state for inbox message when the notification is clicked from terminate state
- BugFix - Refactored public APIs that can cause name collision.
- BugFix - Fixed
setImage
andsetGIF*
extension methods name collision.
- Internal Code optimizations.
- Updated the default Gzip state.
- Added delayed InApps support.
- Added Gzip support for API calls.
- Internal Code optimizations
- CrashFix - Fixed crash while serializing the JSON by removing invalid values on migration.
- Added SSL pinning support for network requests.
- Added DC-100 data center.
- BugFix - Handled duplicate tracking of Push-Preference.
- BugFix - Fixed API connection timeout.
- iOS breakpoint issue fix by changing the config settings.
- iOS breakpoint issue fix by creating framework from Xcode 14.3.1.
- BugFix - Added integration details in Extension API call.
- Adding support to track primitive arrays in UserAttributes
- Additional Constructor with Data Center Support.
- Updated the deployment target to 11.0.
- Added support for API and Storage Encryption.
- Added MoEngageSecurity framework.
- Added DC-05 support.
- Added support to track
deviceType
. - Internal Code optimizations
- BugFix - Handled the deeplink callback to
SceneDelegate
class. - CrashFix - Fixed crash due to data race condition in core module.
- Code optimization
- CrashFix - Fixed the crash when migrating from 8.2.0 to 9.x.x
- CrashFix - Fixed the crash by handling data race condition in Messaging module
- BugFix - Handled the logic to open url in external browser.
- Code optimization
- Support for
stopGeofenceMonitoring
API in Geofence module.
- CrashFix - Fixed migration crash for session and source.
- BugFix - Added DC-04 support.
- BugFix - Fixed the delay in deeplink callback for custom URL scheme.
- CrashFix - Handled the crash when registering for remote notifications.
- BugFix - Fixed Carousel image not displaying multiple images.
- CrashFix - Fixed the crash when migrating from 8.2.0 to 9.1.0.
- BugFix - Handling the logic to discard RichLanding action if the url does not start with
http:
orhttps:
. - CrashFix - Carousel Image Order Mismatch in collapsed mode for rich notifications.
- Migrated MoEngageSDK from Objective-C to Swift
- Removed other modules interface method from MoEngage class
- Removed optional modules from MoEngageSDK target.
- Updated
disableBadgeReset
method ofMoEngageSDKMessaging
to take Bool as its parameter. - Added API documentation
- All the classes and modules are prefixed with
MoEngage
. - Renamed
MOCore
toMoEngageCore
for iphone SDK and TVOS SDK. - BugFix - Badge is not getting reset when the disableBadgeReset is set as false.
- BugFix - Fixed test inapp api getting called multiple times on clicking the test inapp Pushnotification.
- Added DC-04 support.
- CrashFix - Updated Appdelegate swizzler to handle crash while registering for remote notifications.
- CrashFix - Handled removing of
infinity
orNaN
from the payload on migration.
- CrashFix - Fixed Crash while passing
infinity
orNaN
to SDK via user attributes and track event properties. - BugFix - Added support to track userAttribute of type
Float
.
- Added MoEngageSDK Initialization method with SDK State.
- Fixed handling of notification observers to avoid runtime crashes.
- Added exception handling to fix the crashes in a few scenarios.
- Added support for
setUserAttributeISODate
in the following ISO formatyyyy-MM-dd'T'HH:mm:ss.SSS'Z'
- Added API
setDateOfBirthInISO
to track Date of birth in ISO format. - Added API
MoESdkStateHelper.isSDKInitialized
to check if SDK is initialized.
- Fixed multithreading issue in SDK, which led to crashes in few cases.
- Added API
MoESdkStateHelper.isSDKEnabled
to fetch current state of the SDK.
- Fixed the lldb issue when integrating MoEngage-iOS-SDK to Swift application.
- Updated the framework name from MoEngage to MoEngageSDK.
- RealTimeTrigger and Inbox feature is separated from MoEngageSDK. Hence these modules must be integrated explicitly.
- Deprecated existing UserAttribute methods.
- Provided Swift Package manager support to install the SDK
- Handled SDK initialization from background thread.
- Added
Capacitor
integration type.
- Assigned the SDK version to a constant , as in few instances App Version was getting tracked as SDK version.
- Changed the implementation to determine SDK version, as in few instances App Version was getting tracked as SDK version.
- Handled warning in MoEngageCore due to missing nullability type specifier
- Updated MORichNotification Dependency to
~>5.2.0
- Releasing module as XCFramework.
- HTML InApp Support Added.
- Delivery Funnel implementation for InApps.
- Handling of Control Group Error in InApps.
- Campaign Context tracking for inApp Stats.
- Added a method to detect App Launches due to MoEngage silent push notifications.
- Image resource, deeplinks and richlanding URLs are percentage encoded if not already and then processed.
- Fixed a multithreading issue in Analytics Module, which led to crashes in few cases.
- Support for User Attribute Blacklisting with remote config.
- Add
setDataCenter()
to configure the Data Center in the SDK. - Reintroduced
setAppGroupID()
to configure AppGroup ID in the SDK.
- MOSDKConfig class introduced to initialize the SDK.
- Remote Logger added for debugging.
- API Encryption option provided in the SDK
- SDK UserDefault keys saved in a separate suite and not in standard User Defaults
- SDK API Hosts are updated, configure the same by setting appropriate Data Center in MOSDKConfig.
- SDK to support iOS 10.0 and above, iOS 9.* support dropped
- Internal optimizations.
- Weak linked AppTrackingTransparency framework.
- Added
enableSDK()
anddisableSDK()
methods for blocking/unblocking SDK features
- Bugfix: One of the SDK background tasks while syncing the data was getting terminated prematurely.
- Changes to support Cards 1.1.0(Cards class name updated to MoEngageCards)
- Cards Module stats events whitelisted for GDPR opt-outs.
- Bugfix: Universal Links was taking user to Safari, instead of processing inside the app.
- Xcode 12 Build settings changes to exclude arm64 architecture for Simulator.
- Added
notificationClickedWithScreenName:KVPairs:andPushPayload:
method toMOMessagingDelegate
protocol.
- Push Templates Support Added(Stylized Basic and Simple Image Carousel).
- Changes to support Inbox for multiple apps with same App Group ID.(with MORichNotification version 4.0.0)
- Unity Integration tracking added.
- Support For Cards Campaign added
- BugFix: InApp exit animation was not being applied correctly.
- BugFix: Universal Links were not considered for Source tracking in Analytics
- Fixed Weak Linking of InApp and Geofence Frameworks.
- Support for India cluster.
- SDK Rearchitected and has been split into 5 modules now i.e,
MoEngageCore
,MOAnalytics
,MOMessaging
,MOInApp
andMoEngage
(Umbrella framework). - InApp Module completely revamped, and has to be integrated separately now. Most of the APIs have changed, therefore refer to this doc to reintegrate the module to the project.
- Initialization Methods are deprecated, get info on the updated intialization method from here
MOPayloadBuilder
is deprecated now, useMOProperties
for tracking event attributes.- Added new methods to track date event and user attributes using ISO date string.
- Added a method to track UserAttribute by passing the date instance.
- Event local time was getting tracked according to the Calendar and locale set in the device, have made it device setting independent now.
- Event local time was getting tracked according to the Calendar and locale set in the device, have made it device setting independent now.
- Fixed a crash which was occuring sometimes while trying to persist the tracked user attributes in SDK.
- Session and Source Tracking will be enabled by default.
- BugFix: Notification Clicked was not getting tracked when app was in terminated state with AppDelegate Proxy enabled.
- BugFix: There was a bug related to computation of session endtime which is fixed now.
- BugFix: Session start time was not tracked in correct format, its been fixed.
- Added a Main thread check for processing of launchOptions and configuring of AppDelegate Proxy.
- BugFix: Show Only in Screen in InApp was always failing, its been fixed.
- Fixed a memory leak identified in the SDK.
- BugFix: Session start time is tracked in GMT timezone instead of device time zone.
- Session and Source tracking is possible in the SDK.
- AppDelegate Swizzling implemented to ease the integration of PushNotification. It can be disabled by setting the
MoEngageAppDelegateProxyEnabled
key toNO
in yourInfo.plist
file. - Removed support for previously deprecated methods.
- Inbox module revamp where few of the existing APIs are deprecated for new APIs and now notifcations are synced from Notification Service Extension using MORichNotification aswell instead of just relying on the Network API Sync.
- Internal changes to make the SDK API calls more secure.
- Fixed a crash in periodic sync module of the SDK, which used to occur due to a deadlock while initiating the timer for periodic sync.
- Geofence Module Separated from the Core SDK. Refer to the docs for more info.
- Bug Fix: Universal links when sent as deep links were not working.
- Real-time Trigger Campaigns Bug Fix : Wrong push notification payload was posted in offline scenarios where event personalization was used.
- Delegate method
inboxCellSelectedWithPushDict:
provided for getting Push Notification Payload on clicking notification in SDK inbox. - Now for processing inbox notifications clicks the same way as push notification clicks set
shouldProcessNotificationActions
of MOInboxViewController instance totrue
.
- Network request and response caching in Cache.db disabled.
- Changed routes of sync API calls in SDK.
- App Exit Event being tracked for using Real-time triggers when app goes to background.
- Real-Time triggers can now also be triggered by events being tracked when app is in background state.
- SDK changes to make it GDPR compliant. We have provided opt-out methods for event tracking, push notifications and inApp Notifications in this release.
- Provided
resetUserWithCompletionBlock:
andflushWithCompletionBlock:
methods to provide callbacks once the request is processed.
- SDK was changed to dynamic framework
- Support for Real-Time Triggers added
- Issue fixed where sometimes SDK was crashing due to calling sync in multiple threads.
- Provided a method to manually dismiss RichLanding Webview Controller(SFSafariController for iOS9+) :
dismissRichLandingWebViewControllerWithAnimation:
- Bug Fix for issue where a black tint view was added on viewcontroller in case of self-handled Smart Trigger InApp.
- Conditional Action supported in inApp for rating template.
- Periodic Flush of events introduced in the SDK.
- Tracking of Device Model implemented.
- Fixed an issue where in some cases calling resetUser simultaneously with syncNow was causing a crash.
- Provided
setAlias:
method to updateUSER_ATTRIBUTE_UNIQUE_ID
- link - Now if the
USER_ATTRIBUTE_UNIQUE_ID
is updated usingsetUserUniqueID:
with a new value, will reset the current user and lead to creation of unintended users in our system.
- Provided a method to redirect data to EU servers using
redirectDataToRegion:
. - link
- Provided a method to track inbox notification clicks.
- Removed the check of Show Only In Screen for Test InApp Campaigns.
- Provided methods to mark a inbox notification as read.
- Added additional debug logs to debug inApp issues.
- SDK supports blacklisting of events to be tracked in the app.
- Inbox messages will have an expiry value, based on which it will be deleted from User Inbox. By default the value will be set to 30 days.
- Locale tracking won't be done by default in the SDK, instead trackLocale: method has to be called to track user locale settings.(https://docs.moengage.com/v1.0/docs/tracking-user-attributes#section-tracking-user-locale)
- Optimized SDK Network calls.
- Fixed issues with locale tracking in iOS ### Versions below iOS10.
- Fixed an issue with opening of Deeplinks when app in foreground.
- Fixed a crash in Self-handled InApp
- Provided method to delete all the messages from Inbox
- Fixed an issue in Logger class of the SDK.
- Started tracking locale of device
- Started showing reason for failure of displaying inApp in an alert, in case of test inApp from push
- Fixed a bug where test inApp feature for Self-Handled inApp wasn't getting displayed.
- Dictionary returned for self-handled inApp contain's additional parameters now i.e,expiretime, maxTimes, interval, * autoDismissInterval, persistent
- App Lifecycle methods which were earlier called from App Delegate are deprecated now, SDK is internally handling these methods.
- Optimization in syncing of tracked events.
- Separate methods are provided now to set default User Attributes. eg: EmailID, User Name etc.
- Fixed a bug where SDK was not able to find MOInbox.storyboard while using MoEngage-iOS-SDK as framework(by defining use_framework! in pod file)
- InApp changes to handle Notification Permission/Setting Permission Actions more efficiently.
- Enabled tracking of push delivery using Notification Extension and AppGroups - http://docs.moengage.com/docs/push-delivery-tracking
- Enabled Test InApp from push when push is received in foreground.
- Check in SDK to prevent getting multiple UPDATE events.
- Inbox module changes to get media-attachment sent in case of iOS Rich Notifications.
- Fixed a bug where InApp was shown even when the keyboard was over the screen.
- Improved logging mechanism, which will help in debugging any issue which arises.
- Supports iOS10 changes for Notifications - http://docs.moengage.com/docs/ios-10-rich-notifications
- Makes use of UserNotifications framework for iOS10.
- Registration for push is handled in SDK now.
- Supporting Nudges for testing inApp campaigns from push notification and added alerts on failure to show test inApps.
- Bug fix : InApp can be shown along with Nudges now.
- Bug fixes in inApp module to show inApp if handleInAppMessage called during fetching inApp from server.
- Inbox module supports notification containing alert as dictionary.
- Bug Fixes for Rich Landing from push notification.
- Improved exception handling in the SDK, along with detailed logs on exceptions to help in debug.
- RichLanding content will be shown in SFSafariViewController for iOS9 and above.
- We are now tracking change in Push Preference status event.
- You can now test inApps through push notification.
- Bug Fixes for event tracking through inApps and saving data on failure to sync with server.
- We now have two separate methods for initializing the SDK with your App ID, this is for differentiating test devices which runs in DEBUG mode with production build in AppStore which runs in RELEASE mode. Refer the following link for more details : http://docs.moengage.com/docs/appdelegate-changes#section-initializing-moengage-sdk
- Notification can now have categories for action buttons - http://docs.moengage.com/docs/actionable-notifications
- In-App fix for Navigation controller in a tab bar controller, where we had trouble finding what the top view controller on the stack was.
- Deeplinking, Coupon Code and Rich landing page options for Notification actions, while creating a campaign. The SDK will handle them by default.
- Minor bug fix for data sync.
- This is a major release. It is recommeded to update to 2.0.
- In-App V2 aka In-App Nativ is live. This SDK includes the next ### Version of in-apps which are totally customisable.
- You will have to change the old callbacks for In-Apps.
- Some methods are removed. Please check the MoEngage.h file.
- Install/Update events are now extended to creating Smart trigger pushes.
- WebViewController is always presented now, along with a DONE button at the top to dismiss the controller.
- Self Handled in-apps available now.
- IDFV can be nil if the device is restarted and not unlocked. While it's extremely rare, it can happen. Added a check for the same.
- iOS 7 crash while string match for Geofence fix.
- If an attribute is set to nil, a log is printed, and the value is discarded.
- Deprecated setLocationwithLat: lng: . Use setUserAttributeLocationLatitude: longitude: forKey: instead.
- Better tracking of Push Preference for iOS8.
- Bug fix for events being lost sometimes if sync fails.
- Inbox Storyboard fix for ### Version type. The storyboard didn't open for some ### Versions of Xcode.
- Now you can get nudges specific to a screen by using getNudgeViewForScreen;
- Inbox now has the ability to delete a message. Swipe the cell to delete.
- Some Inbox messages coming blank bug fix.
- Now you can control MoEngage logs by using [MoEngage debug:YES/NO]; You can also set Log Levels and log everything, nothing or just the exceptions.
- A new event is sent for when a user recieves a notifcation when his app is active.
- Events done during the duration of resetUser were lost (1-2 secs). They won't be lost, but will be attributed to the new user now.
-
- Nudge view has screenname in it's view layer now. [view.layer valueForKey:@"screenName"]; Using this, you can show nudges on specific screens.
- Ad Support Framework is weak linked. We will not collect IDFA by default.
- Only if the framework is added, the IDFA will be collected by MoEngage.
- Warnings resulting from CLANG_ENABLE_MODULES have been fixed.
- Warnings resulting from GCC_PRECOMPILE_PREFIX_HEADER have been fixed.
- Apple is fixing the above issues soon. A bug has been filed with them.
- Duplicate symbols fix. In some cases, the SDK does not build and shows duplicate symbols.
- NSLogs now work only for simulators and are disabled for devices.
- PushTime fix, for swift compatibility as swift has issues with Casting.
- Location user attribute and event attribute support.
- NSLogs are disabled in this release. The library is made in Release scheme.
- Includes bitcode support for iOS9 and Xcode7. This will not work with Xcode6, since it does not have bitcode support.
- A data sync issue fix where user goes to background and within a second terminates the app. The data was being sent twice. (happened rarely)
- Geofencing now has a completion handler to notfiy which regions are being tracked, and allowing you to manipulate them.
- MoEngage.bundle Xcode 7 incompatibility issues fixed.
- New attribute location. This can be set as a user as well as event attribute.
- Inbox is available as a custom component. You can modify it as per your need.
- Nudge bug fix. If multiple nudges are created, and the first one will be expired, the active one will be shown.
- Delay for in-app after a push message is removed.
- New callback for userNotification types.
- Now you can use Geofencing.
- In-app experience improved as in-app images are now cached.
- Added method for INSTALL and UPDATE. Now you can send us the info for INSTALL and UPDATE of the app and manage campaigns accordingly.
- iOS6 support for event tracking.
- Critical bug fix for Apple SDK not recognising NSFoundation### VersionNumber_iOS_7_0.
- Crash handling for NSData and NSUrl data types.
- In-app support for iPad.
- New Feature - Nudges
- Improvements in data storage if internet not available of sync fails
- Reset User - You can use this to create a new user with the existing app. One of the ideal scenarios is when a user logs out of the app, and possibly logs in with another account.