Change Log
==========
Version 5.1.0 *(September 23 2026)*
-------------------------------------------
**What's new**
* **[Android Platform]**
    * Supports [CleverTap Android SDK v8.4.1](https://github.com/CleverTap/clevertap-android-sdk/blob/master/docs/CTCORECHANGELOG.md#version-841-august-7-2026).

* **[iOS Platform]**
    * Supports [CleverTap iOS SDK v7.8.2](https://github.com/CleverTap/clevertap-ios-sdk/blob/master/CHANGELOG.md#version-782-september-4-2026).
    * Adds App Inbox cross-device sync: reading or deleting a message on one device is now automatically reflected on the user's other devices.
    * Adds Spin-the-Wheel and Scratch Card gamified templates to the Advanced In-App Builder, configurable tap-outside/swipe-to-dismiss gestures for In-Apps, and accessibility improvements (VoiceOver labels, larger dismiss-button tap area) across In-App notifications and the App Inbox.
    * Supports silent-in-foreground push notifications: a push containing `wzrk_sif:true` is delivered silently to the notification tray instead of as a heads-up alert while the app is in the foreground. Apps using manual push integration (without `autoIntegrate`) must call the new native `handleWillPresentNotification` method from their `UNUserNotificationCenterDelegate`'s `willPresent` callback; see [CleverTap iOS SDK docs](https://github.com/CleverTap/clevertap-ios-sdk/blob/master/CHANGELOG.md#version-771-june-04-2026) for native integration details.

**API changes**
* **[Android and iOS Platform]**
    * Adds new `dismissPipInApp()` API to dismiss the currently visible Picture-in-Picture (PIP) In-App notification, if any. Safe to call from any thread; a no-op when no PIP is visible.
    * Adds new `fetchInbox(successCallback)` API to trigger an on-demand App Inbox refresh from the server, throttled to once every 5 minutes. The optional callback receives a boolean indicating whether messages were fetched and applied.
    * Adds new `pushDisplayUnitElementClickedEventForID(unitId, additionalProperties)` API to record a `Notification Clicked` event for a specific element within a Display Unit.

**Bug Fixes**
* **[Android Platform]**
    * Fixes an issue where the built-in App Inbox did not repaint the message list after a pull-to-refresh; newly fetched messages only appeared after closing and reopening the inbox.
    * Fixes a crash seen when a Picture-in-Picture (PIP) In-App notification played a video on Android 6.0.
* **[iOS Platform]**
    * Fixes an issue where In-App campaigns triggered by custom events could not match device and app properties.
    * Fixes an issue where discarded event names were stored in preferences and re-sent to the server on every request.
    * Fixes an issue where stored Client-Side and Server-Side In-App notifications were cleared when the delivery mode was missing.
    * Fixes a potential crash while saving variable diffs, and a concurrency-related crash during simultaneous A/B experiment-variant updates.
    * Fixes an issue where In-App notifications missed while the app was backgrounded did not show once the app returned to the foreground.
    * Fixes an issue where the built-in App Inbox did not repaint the message list after a pull-to-refresh.

Version 5.0.0 *(April 30 2026)*
-------------------------------------------
**What's new**
* **[Android Platform]**
    * Supports [CleverTap Android SDK v8.1.0](https://github.com/CleverTap/clevertap-android-sdk/blob/master/docs/CTCORECHANGELOG.md#version-810-april-17-2026).
    * Bumps the minimum supported Android API level from 21 (Android 5.0) to 23 (Android 6.0).

* **[iOS Platform]**
    * Supports [CleverTap iOS SDK v7.6.0](https://github.com/CleverTap/clevertap-ios-sdk/blob/master/CHANGELOG.md#version-760-april-17-2026).

**API changes**
* **[Android and iOS Platform]**
    * Adds new `variants(successCallback)` API to fetch the active A/B experiment variants for the current user. Each variant object contains an `"id"` key mapping to the numeric ID of the variant.
    * Updates `discardInAppNotifications()` with an optional boolean parameter `dismissInAppIfVisible`. When `true`, immediately dismisses any currently visible In-App notification in addition to clearing the pending queue.
        * `discardInAppNotifications(dismissInAppIfVisible)`
    * Adds new `unmute()` API to resume event tracking, overriding any active mute period.

**Bug Fixes**
* **[iOS Platform]**
    * Fixes a bug where onUserLogin was creating additional guids only for encryption level high.

Version 4.3.0 *(October 8 2025)*
-------------------------------------------
**What's new**
* **[Android Platform]**
    * Supports [CleverTap Android SDK v7.5.2](https://github.com/CleverTap/clevertap-android-sdk/blob/master/docs/CTCORECHANGELOG.md#version-752-september-11-2025).

* **[iOS Platform]**
    * Supports [CleverTap iOS SDK v7.3.3](https://github.com/CleverTap/clevertap-ios-sdk/blob/master/CHANGELOG.md#version-733-september-11-2025).

**Bug Fixes**
* **[Android and iOS Platform]**
    * Fixes an issue where `profileGetProperty` didn't return `null` for non-existent keys

Version 4.2.0 *(July 29 2025)*
-------------------------------------------
**What's new**
* **[Android Platform]**
    * Supports [CleverTap Android SDK v7.5.0](https://github.com/CleverTap/clevertap-android-sdk/blob/master/docs/CTCORECHANGELOG.md#version-750-july-11-2025).

* **[iOS Platform]**
    * Supports [CleverTap iOS SDK v7.3.1](https://github.com/CleverTap/clevertap-ios-sdk/blob/master/CHANGELOG.md#version-731-july-15-2025).

**API changes**
* **[Android and iOS Platform]**
    * Updates the `setOptOut(userOptOut)` API. This upgraded API improves GDPR opt-out functionality by allowing you to control whether critical system events (such as app installs, uninstalls, and push notification registration) are still sent to CleverTap, even when a user has opted out of tracking. This helps you respect user privacy choices while still maintaining essential app functionality and compliance with regulations. This is a non-breaking change.
        * `setOptOut(userOptOut, allowSystemEvents)`

**Bug Fixes**
* **[iOS Platform]**
    * Fixes a `No new templates are synced` error while syncing new custom templates.
    * Fixes a Local Push Primer crash when asking for push permission using promptForPushPermission.

Version 4.1.0 *(June 27 2025)*
-------------------------------------------
**What's new**
* **[Android Platform]**
    * Supports [CleverTap Android SDK v7.4.1](https://github.com/CleverTap/clevertap-android-sdk/blob/master/docs/CTCORECHANGELOG.md#version-741-june-27-2025).

* **[iOS Platform]**
    * Supports [CleverTap iOS SDK v7.2.1](https://github.com/CleverTap/clevertap-ios-sdk/blob/master/CHANGELOG.md#version-721-june-27-2025).

Version 4.0.0 *(14 May, 2025)*
-------------------------------------------
> ⚠️ **NOTE**  
> Please refer to [this guide](https://developer.clevertap.com/docs/clevertap-huawei-push-integration) for changed integration steps for Huawei PushProvider.

#### New Features
**Android Specific**
* Supports [CleverTap Android SDK v7.3.1](https://github.com/CleverTap/clevertap-android-sdk/blob/develop/docs/CTCORECHANGELOG.md#version-731-march-27-2025).
* Adds support for Android 15, making it compliant with Android 15 requirements. Details here. 
* Upgrades the algorithm used for encryption of PII data, making it compliant with OWASP. Uses AndroidKeyStore for securely backing up encryption key on API levels 23+. 
* Updates minSdkVersion to API 21 (Android 5.0).
* Adds new API to register push tokens for providers other than `FCM`
    * `registerPushToken(yourToken, pushType)`: Register the token for the specified PushType. Refer [here](docs/Usage.md#registering-baiduhps-token) for example usage.


#### Breaking API Changes
**Android Specific**
- **Removes:** The legacy token registration APIs have been removed to make push providers injectable. The removed APIs include:
    - `setPushBaiduToken()`
    - `setPushHuaweiToken()`


Version 3.4.0 *(25 February, 2025)*
-------------------------------------------
#### New Features
**Android Specific**
* Supports [CleverTap Android SDK v7.1.2](https://github.com/CleverTap/clevertap-android-sdk/blob/develop/docs/CTCORECHANGELOG.md#version-712-january-29-2025).
* Adds support to hide large icon in android notifications by sending `wzrk_hide_large_icon` key in notification payload.

**iOS Specific**
* Supports [CleverTap iOS SDK v7.1.0](https://github.com/CleverTap/clevertap-ios-sdk/blob/master/CHANGELOG.md#version-710-january-21-2024).

**Common for both Android and iOS**
- Adds support for triggering InApps based on first-time event filtering in multiple triggers. Now you can create campaign triggers that combine recurring and first-time events. For example: Trigger a campaign when "Charged" occurs (every time) OR "App Launched" occurs (first time only).
- Adds new user-level event log tracking system to store and manage user event history. New APIs include:
    - `getUserEventLog(<eventName>)`: Get details about a specific event
    - `getUserEventLogCount(<eventName>)`: Get count of times an event occurred
    - `getUserLastVisitTs()`: Get timestamp of user's last app visit
    - `getUserAppLaunchCount()`: Get total number of times user has launched the app
    - `getUserEventLogHistory()`: Get full event history for current user

#### API Changes

- **Deprecates:**  The old event tracking APIs tracked events at the device level rather than the user level, making it difficult to maintain accurate user-specific event histories, especially in multi-user scenarios. The following methods have been deprecated in favor of new user-specific event tracking APIs that provide more accurate, user-level analytics. These deprecated methods will be removed in future versions with prior notice:
    - `eventGetDetail()`: Use `getUserEventLog()` instead for user-specific event details
    - `eventGetOccurrences()`: Use `getUserEventLogCount()` instead for user-specific event counts
    - `eventGetFirstTime()`: Use `getUserEventLog()` instead for user-specific first occurrence timestamp
    - `eventGetLastTime()`: Use `getUserEventLog()` instead for user-specific last occurrence timestamp
    - `sessionGetPreviousVisitTime()`: Use `getUserLastVisitTs()` instead for user-specific last visit timestamp
    - `sessionGetTotalVisits()`: Use `getUserAppLaunchCount()` instead for user-specific app launch count
    - `getEventHistory()`: Use `getUserEventLogHistory()` instead for user-specific event history

Version 3.3.0 *(December 3, 2024)*
-------------------------------------------
#### New Features
**Android Specific**
* Supports [CleverTap Android SDK v7.0.3](https://github.com/CleverTap/clevertap-android-sdk/blob/master/docs/CTCORECHANGELOG.md#version-703-november-29-2024). 
* Removes character limit of maximum 3 lines from AppInbox messages
* Adds support for `AndroidX Media3` in lieu of the [deprecation](https://developer.android.com/media/media3/exoplayer/migration-guide) of `ExoPlayer`. While Clevertap continues to support `ExoPlayer`, migration is recommended. For migration refer [here](docs/Integrate-Android.md#migrating-from-exoplayer-to-androidx-media3-optional).

**iOS specific**
* Supports [CleverTap iOS SDK v7.0.3](https://github.com/CleverTap/clevertap-ios-sdk/blob/master/CHANGELOG.md#version-703-november-29-2024).

**Common for both Android and iOS**
* Adds support for triggering InApps based on user attribute changes.
* Adds support for File Type Variables in Remote Config. Please refer to the [Remote Config Variables](docs/Variables.md) doc to read more on how to integrate this in your app.
* Adds support for Custom Code Templates. Please refer to the [CustomCodeTemplates](docs/CustomCodeTemplates.md) doc to read more on how to integrate this in your app.
* Changes campaign triggering evaluation of event names, event properties, and profile properties to ignore letter case and whitespace. 
* Adds support for previewing in-apps created through the new dashboard advanced builder.
* Adds support for custom handshake domain configuration.

#### Bug Fixes
**Android Specific**
* Fixes an ANR caused by extremely old InApp campaigns.
* Fixes an issue where incorrect callbacks were sent for InApps when the phone was rotated.
* Fixes an issue where an InApp was displayed even after all the campaigns were stopped.
* Fixes an issue where the InApp image was not shown when the phone was rotated to landscape.
* Fixes an issue where certain URLs loaded incorrectly in custom HTML InApp templates.


Version 3.2.0 *(August 12, 2024)*
-------------------------------------------
#### New Features
**Android Specific**
* Supports [CleverTap Android SDK v6.2.1](https://github.com/CleverTap/clevertap-android-sdk/releases/tag/corev6.2.1).
* Supports Android 14, made it compliant with Android 14 requirements. Details [here](https://developer.android.com/about/versions/14/summary).
* Extends the push primer callback to notify permission denial when cancel button is clicked on `PromptForSettings` alert dialog.
* Adds Accessibility ids for UI components of SDK.
* Migrates `JobScheduler` to `WorkManager` for [Pull Notifications](https://developer.clevertap.com/docs/android-push#pull-notification).

#### Bug Fixes
**Android Specific**
* Fixes [#239](https://github.com/CleverTap/clevertap-cordova/issues/239), an issue where the `onPushNotification` callback was not triggered when notification was tapped from the `killed` state on `capacitor` apps.
* Fixes InApps crash in a rare activity destroyed race condition.
* Fixes Potential ANR in a race condition of SDK initialisation in multithreaded setup.
* Fixes a bug in Client Side InApps with regards to frequency limits.
* Fixes a crash due to `NullPointerException` related to `deviceInfo.deviceId`.
* Fixes an ANR related to `isMainProcess` check.
* Fixes an ANR due to eager initialisation of `CtApi` triggered by DeviceId generation.

#### Breaking API Changes
* Removes all `Xiaomi` related public methods as the `Xiaomi` SDK has been discontinued. Details [here](https://developer.clevertap.com/docs/discontinuation-of-xiaomi-push-service).

Version 3.1.0 *(April 27, 2024)*
-------------------------------------------
#### New Features
**iOS specific**
* Supports [CleverTap iOS SDK v6.2.1](https://github.com/CleverTap/clevertap-ios-sdk/releases/tag/6.2.1).
* Adds privacy manifests.

#### Bug Fixes
**iOS specific**
* Fixes crash due to out of bounds in NSLocale implementation.
* Fixes a bug where client side in-apps were not discarded when rendering status is set to "discard".

Version 3.0.0 *(April 17, 2024)*
-------------------------------------------
#### New Features
**Android specific**
* Supports [CleverTap Android SDK v6.0.0](https://github.com/CleverTap/clevertap-android-sdk/releases/tag/corev6.0.0_ptv1.2.2).
* Adds support for exoplayer `v2.19.1`.

**iOS specific**
* Supports [CleverTap iOS SDK v6.0.0](https://github.com/CleverTap/clevertap-ios-sdk/releases/tag/6.0.0).
* Adds support for client-side in-apps.

**Common for both android and iOS**
* Adds new public APIs, `fetchInApps` and `clearInAppResources` to support client-side in-apps.

#### Bug Fixes
**Android specific**
* Fixes no empty message for app inbox without tabs 
* Removes onClickListener for Image of Cover InApp

**iOS specific**
* Fixes a bug where some in-apps were not being dismissed

Version 2.7.2 *(December 5, 2023)*
-------------------------------------------
#### New Features

**Android specific**
* Supports [CleverTap Android SDK v5.2.1](https://github.com/CleverTap/clevertap-android-sdk/releases/tag/corev5.2.1_xpsv1.5.4). This supported version includes support for Custom Proxy Domain functionality. Check usage for cordova android [here](docs/Integrate-Android.md#integrate-custom-proxy-domain).

**iOS specific**
* Supports [CleverTap iOS SDK v5.2.2](https://github.com/CleverTap/clevertap-ios-sdk/releases/tag/5.2.2). This supported version includes support for Custom Proxy Domain functionality. Check usage for cordova ios [here](docs/Integrate-iOS.md#integrate-custom-proxy-domain).

#### Bug Fixes
* Fixes a crash in iOS 17/Xcode 15 related to alert inapps.

**Common for both android and iOS**
* Adds new public API `setLocale(String locale)` for in-built support to send the custom locale(i.e.language and country) data to the dashboard.
* Adds support for Integration Debugger to view errors and events on the dashboard when the debugLevel is set to 3.

Version 2.7.1 *(August 17, 2023)*
-------------------------------------------
#### New Features

**Android specific**
* Supports [CleverTap Android SDK v5.2.0](https://github.com/CleverTap/clevertap-android-sdk/releases/tag/corev5.2.0_hmsv1.3.3_xpsv1.5.3). This supported version includes encryption feature for PII data. Check encryption usage for cordova android [here](docs/Integrate-Android.md#setup-encryption-for-pii-data).

**iOS specific**
* Supports [CleverTap iOS SDK v5.2.0](https://github.com/CleverTap/clevertap-ios-sdk/releases/tag/5.2.0). This supported version includes encryption feature for PII data. Check encryption usage for cordova ios [here](docs/Integrate-iOS.md#setup-encryption-for-pii-data).

#### Bug Fixes
* Fixes `NSInvalidArgumentException` for `getDisplayUnitForId` and `getInboxMessageForId` in iOS.

Version 2.7.0 *(August 2, 2023)*
-------------------------------------------
#### New Features

**Android specific**
* Supports [CleverTap Android SDK v5.1.0](https://github.com/CleverTap/clevertap-android-sdk/releases/tag/corev5.1.0_ptv1.1.0).
* Supports [cordova android 12.0.0](https://cordova.apache.org/announcements/2023/05/22/cordova-android-12.0.0.html)
* `deleteInboxMessagesForIds(messageIDs)` is now supported in Android as well.
* New callback `onCleverTapInAppNotificationShow(JSONObject)` 
* **Behavioral change of `onCleverTapInboxItemClick`**:
  - Previously, the callback was raised when the App Inbox Item is clicked.
  - Now, it is also raised when the App Inbox button and Item is clicked.


**iOS specific**
* Supports [CleverTap iOS SDK v5.1.2](https://github.com/CleverTap/clevertap-ios-sdk/releases/tag/5.1.2).
* Supports [cordova ios 7.0.0](https://cordova.apache.org/announcements/2023/07/10/cordova-ios-7.0.0.html)

**Common for both android and iOS**
* Adds below new public APIs for supporting [Android 13 notification runtime permission](https://developer.android.com/develop/ui/views/notifications/notification-permission)
  * `isPushPermissionGranted(successCallback)` [Usage can be found here](docs/pushprimer.md#get-the-push-notification-permission-status)
  * `promptPushPrimer(JSONObject)` [Usage can be found here](docs/pushprimer.md#push-primer-using-half-interstitial-local-in-app)
  * `promptForPushPermission(boolean)` [Usage can be found here](docs/pushprimer.md#prompt-the-notification-permission-dialog-without-push-primer)
  * New callback `onCleverTapPushPermissionResponseReceived` available which returns after user Allows/Denies notification permission [Usage can be found here](docs/pushprimer.md#available-callbacks-for-push-primer)
* Adds support for Remote Config Variables. Please refer to the [Variables.md](docs/Variables.md) file to
  read more on how to integrate this to your app.
* Adds new API, `markReadInboxMessagesForIds(messageIDs)` to mark read an array of
  Inbox Messages.
* Adds new API, `dismissInbox()` to dismiss the App Inbox.

#### API Changes

* **Deprecated:** The following methods and callbacks related to Product Config and Feature Flags have
  been marked as deprecated in this release, instead use new remote config variables feature. These
  methods and callbacks will be removed in the future versions with prior notice.
    * Product config
        - `setDefaultsMap()`
        - `fetch()`
        - `fetchWithMinimumFetchIntervalInSeconds()`
        - `activate()`
        - `fetchAndActivate()`
        - `setMinimumFetchIntervalInSeconds()`
        - `getLastFetchTimeStampInMillis()`
        - `getString()`
        - `getBoolean()`
        - `getLong()`
        - `getDouble()`
        - `reset()`
        - callback `onCleverTapProductConfigDidInitialize`
        - callback `onCleverTapProductConfigDidFetch`
        - callback `onCleverTapProductConfigDidActivate`
 
    * Feature flags
        - `getFeatureFlag()`
        - callback `onCleverTapFeatureFlagsDidUpdate`

#### Breaking API Changes

* **Return value change of `onCleverTapInboxItemClick` callback in android and `messageDidSelect` callback in iOS**: callback returns `JSONObject` with below entries
    - `data` corresponds to the payload of clicked inbox item
    - The `contentPageIndex` corresponds to the page index of the content, which ranges from 0 to the total number of pages for carousel templates. For non-carousel templates, the value is always 0, as they only have one page of content.
    - The `buttonIndex` represents the index of the App Inbox button clicked (0, 1, or 2). A value of -1 indicates the App Inbox item is clicked.

#### Bug fixes
* Fixes an XSS vulnerability - https://fluidattacks.com/advisories/maiden/ We recommend all users to update to v2.7.0 or above.

Version 2.6.2 *(April 18, 2023)*
-------------------------------------------
- Fixed compilation errors in xcode 14.3+ in iOS.
- Supports [CleverTap iOS SDK v4.2.2](https://github.com/CleverTap/clevertap-ios-sdk/releases/tag/4.2.2).

Version 2.6.1 *(January 25, 2023)*
-------------------------------------------
- Fixes a compilation error with iOS app inbox callback method `messageDidSelect`.

Version 2.6.0 *(December 29, 2022)*
-------------------------------------------
- Supports [CleverTap Android SDK v4.6.6](https://github.com/CleverTap/clevertap-android-sdk/releases/tag/corev4.6.6)
- Supports [cordova android 11.0.0](https://cordova.apache.org/announcements/2022/07/12/cordova-android-release-11.0.0.html)
- Supports Android exoplayer [`v2.17.1`](https://github.com/google/ExoPlayer/releases/tag/r2.17.1). Note : this upgrade will result in minor ui changes for interstitial in app and inbox notifications that uses exoplayer.
- Adds new callback `onCleverTapInboxItemClick` to receive inbox item click.
- Breaks Android `setPushXiaomiToken()` API where new changes adds `region` as second mandatory parameter to specify server region.If you are using this method make sure you pass region while calling `setPushXiaomiToken()`.
- Supports [CleverTap iOS SDK v4.2.0](https://github.com/CleverTap/clevertap-ios-sdk/releases/tag/4.2.0).
- Adds a public method `deleteInboxMessagesForIds()` for deleting multiple App Inbox messages by passing a collection of messageIDs. Please note that this is only for iOS, and NO-OP for Android as of now.

Version 2.5.2 *(July 29, 2022)*
-------------------------------------------
- Fixes an iOS bug where `onDeepLink` callback wasn't being called when triggered from killed state.
- Supports [CleverTap iOS SDK v4.1.1](https://github.com/CleverTap/clevertap-ios-sdk/releases/tag/4.1.1).

Version 2.5.1 *(June 7, 2022)*
-------------------------------------------
- Supports [CleverTap Android SDK v4.4.0](https://github.com/CleverTap/clevertap-android-sdk/releases/tag/core-v4.4.0) .
- Support for Android 12.
- Support for [Android Push Templates](https://github.com/CleverTap/clevertap-cordova/blob/master/docs/Troubleshooting-Guide.md#supporting-clevertap-push-templates) .
- Fixes an iOS bug where push notifications were not being rendered in the foreground and notification clicked events were fired automatically.
- Supports [CleverTap iOS SDK v4.0.1](https://github.com/CleverTap/clevertap-ios-sdk/releases/tag/4.0.1).

Version 2.4.0 *(January 31, 2022)*
-------------------------------------------
- Adds public methods for suspending, discarding & resuming InApp Notifications
- Adds public methods to increment/decrement values set via User properties
- Deprecates `profileGetCleverTapID()` and `profileGetCleverTapAttributionIdentifier()` methods
- Adds a new public method `getCleverTapID()` as an alternative to above deprecated methods
- Supports [CleverTap iOS SDK v3.10.0](https://github.com/CleverTap/clevertap-ios-sdk/releases/tag/3.10.0)
- Supports [CleverTap Android SDK v4.2.0](https://github.com/CleverTap/clevertap-android-sdk/releases/tag/core-v4.2.0)

Version 2.3.6 *(23rd November 2021)*
-------------------------------------------
- Fixes a bug where DOB was not getting respected in Android as profile property

Version 2.3.5 *(9th June 2021)*
-------------------------------------------
- Supports CleverTap Android SDK v4.1.1
- Supports CleverTap iOS SDK v3.9.4
- Removes Product A/B Testing (Dynamic Variables) code
- Removes `profileSetGraphUser` and `profileSetGooglePlusUser` method

Version 2.3.4 *(27th April 2021)*
-------------------------------------------
- Update and Freeze CleverTap Cordova Plugin Podspec to a specific version of a CleverTap iOS SDK

Version 2.3.3 *(24 February, 2021)*
-------------------------------------------
* Added Push Notification with Custom Extras callback support in the killed state 
* Update for CleverTap iOS SDK v3.9.2

Version 2.3.2 *(07 January, 2021)*
-------------------------------------------
* Added support for Push Notification Click Callbacks
* Added CleverTap iOS SDK dependency via CocoaPods in the plugin.xml
* Update for CleverTap Android SDK v4.0.2

Version 2.3.1 *(11 November, 2020)*
-------------------------------------------
* Fixed a NPE on `getAllDisplayUnits` method
* Update for CleverTap iOS SDK v3.9.1

Version 2.3.0 *(15 October, 2020)*
-------------------------------------------
* Update for CleverTap Android SDK v4.0.0

Version 2.2.1 *(20 May, 2020)*
-------------------------------------------
* Bug Fixes and enhancements

Version 2.2.0 *(19 May, 2020)*
-------------------------------------------
* Bug Fixes and enhancements

Version 2.1.9 *(16 May, 2020)*
-------------------------------------------
* Adds support for Custom Inbox, InApp and Inbox Click callbacks
* Adds support for Native Display & Dynamic Variables
* Adds support for Product Config and Feature Flags
* Adds support for Xiaomi, Baidu & Huawei Push
* Update for CleverTap Android SDK v 3.8.0
* Update for CleverTap iOS SDK v 3.8.0

Version 2.1.8 *(26 February, 2020)*
-------------------------------------------
* Revert Google Play Install Referrer Library to v1.0
* Update for CleverTap Android v3.6.4

Version 2.1.7 *(24 February, 2020)*
-------------------------------------------
* Adds support for new Google Play Install Referrer API
* Update for CleverTap Android v3.6.3

Version 2.1.6 *(20 January, 2020)*
-------------------------------------------
* Fixing after install scripts

Version 2.1.5 *(11 December, 2019)*
-------------------------------------------
* Update for CleverTap Android v 3.6.1

Version 2.1.4 *(7 November, 2019)*
-------------------------------------------
* Update for CleverTap Android v 3.5.1

Version 2.1.3 *(4 November, 2019)*
-------------------------------------------
* Update for CleverTap iOS SDK v 3.7.1

Version 2.1.2 *(29 May, 2019)*
-------------------------------------------
* Update for CleverTap Android SDK v 3.5.1
* Update for CleverTap iOS SDK v 3.5.0

Version 2.1.1 *(08 February, 2019)*
-------------------------------------------
* Update for CleverTap Android SDK v 3.4.2
* Update for CleverTap iOS SDK v 3.4.1

Version 2.0.16 *(13 October, 2018)*
-------------------------------------------
* Update for CleverTap Android SDK v 3.3.2

Version 2.0.15 *(31 October, 2018)*
-------------------------------------------
* Update for CleverTap iOS SDK v 3.3.0
* Update to CleverTap Android SDK v3.3.1

Version 2.0.14 *(26 September, 2018)*
-------------------------------------------
* Update for CleverTap iOS SDK v 3.2.2

Version 2.0.13 *(11 September, 2018)*
-------------------------------------------
* Update to CleverTap Android SDK v3.2.0
Update to CleverTap iOS SDK v3.2.0

Version 2.0.12 *(5 September, 2018)*
-------------------------------------------
* fix android sdk version

Version 2.0.11 *(29 July, 2018)*
-------------------------------------------
* fix android package name

Version 2.0.10 *(25 July, 2018)*
-------------------------------------------
* Conform plugin id

Version 2.0.9 *(24 July, 2018)*
-------------------------------------------
* Update Android post install script for Cordova 8.0.0

Version 2.0.8 *(15 May, 2018)*
-------------------------------------------
* fixes CleverTapSDK.framework install issues (removes symlinks)

Version 2.0.7 *(11 May, 2018)*
-------------------------------------------
* Update for Android support library version
* Update for CleverTap Android SDK v 3.1.9
* Update for CleverTap iOS SDK v 3.1.7
* Support for Android O Notification Channels with custom sound
* New APIs for GDPR compliance
* Adds Android support for recordScreenView API

Version 2.0.5 *(04 January, 2018)*
-------------------------------------------
* Update for CleverTap Android SDK v 3.1.8

Version 2.0.4 *(13 October, 2017)*
-------------------------------------------
* Update for CleverTap iOS SDK v 3.1.6

Version 2.0.3 *(10 October, 2017)*
-------------------------------------------
* Update for CleverTapAndroidSDK v 3.1.7

Version 2.0.2 *(21 September, 2017)*
-------------------------------------------
* Supports CleverTap 3.1.5/3.1.6

