February 2024
We are excited to share the February SDK changelog for our product!
Note
Click each SDK header to view the corresponding GitHub repository for release details.
February 28
Note
For developers that have BACKGROUND_SYNC (Android Pull Notification) enabled in their older apps and are now upgrading to CleverTap Android SDK v6.1.0 or CleverTap Android SDK v6.1.1, please add the below code snippet to your AndroidManifest.xml to avoid ClassNotFoundException error.
< service android: name = "com.clevertap.android.sdk.pushnotification.amp.CTBackgroundJobService" android: exported = "false" android: enabled = "false" tools: ignore = "MissingClass" />
Bug Fixes
- Fixed an incorrect endpoint issue in the network handshake case.
- Fixed an issue in client-side In-Apps with regard to frequency limits.
February 26
New Features
- Android Platform
- Supports CleverTap Android SDK v6.0.0.
- iOS Platform
- Supports CleverTap iOS SDK v6.0.0.
- Android and iOS Platform
- Adds support for client-side In-Apps.
- Adds new API:
clearInAppResources(boolean)
. It deletes images and GIFs preloaded for In-Apps in CS mode. - Adds new API:
fetchInApps()
. It explicitly fetches In-Apps from the server.
Bug Fixes
- Android Platform
- Fixes a bug where JavaScript does not work for custom-html InApp header/footer templates.
- Fixes a Null Pointer Exception (NPE) related to App Inbox APIs.
- Fixes a
ClassCastException
indefineVariable
API of Product Experiences. - Fixes a resource name conflict with the firebase library in
fcm_fallback_notification_channel_label
. - Fixes a StrictMode Violation spawning from
ctVariables.init()
. - Removes the use of lossy conversions leading to an issue in Push Templates.
- Handles an edge case related to the migration of encryption level when the local database is out of memory.
- iOS Platform
- Fixes a bug where some In-Apps were not being dismissed.
February 22
- Added privacy manifests for CleverTap-iOS-SDK and CleverTapLocation.
- Fixed a crash due to out-of-bounds in
NSLocale
implementation.
Warning
We have identified a critical bug in Android SDK 6.1.0 occurring because of an incorrect endpoint while performing the network handshake. We recommend skipping it and upgrading to Android SDK 6.1.1 instead.
New Features
- Supports Android 14. It is compliant with Android 14 requirements. For more information, refer to the Android documentation.
- Upgrades the Android Gradle Plugin (AGP) to v8.2.2 for building the SDK and adds related consumer pro guard rules.
- Deprecates Xiaomi's public methods as we sunset the Xiaomi SDK. For more information, refer to the Xiaomi document.
- Adds accessibility IDs for UI components of SDK.
- Migrates
JobScheduler
toWorkManager
for Pull Notifications.
Breaking API Changes
CTPushAmpWorker
breaks customWorkerFactory
implementation of an Application. If you are using a customWorkFactory
implementation ofWorkManager
, ensure you:- Correctly handle workers defined by CleverTap SDK and other third-party dependencies.
- Return
null
fromcreateWorker()
for any unknownworkerClassName
. For more information, refer to the Customizing WorkManager β fundamentals blog.
Bug Fixes
- Fixes a rare activity destroyed race condition causing crashes in In-App.
- Fixes a potential Application Not Responding (ANR) issue arising from a race condition during SDK initialization in a multi-threaded environment.
- Supports Android 14. It is compliant with Android 14 requirements. For more information, refer to the Android documentation.
- Upgrades the Android Gradle Plugin (AGP) to 8.2.2 for building the SDK and adds related consumer pro guard rules.
- Supports Android 14. It is compliant with Android 14 requirements. For more information, refer to the Android documentation.
- Upgrades the Android Gradle Plugin (AGP) to 8.2.2 for building the SDK and adds related consumer pro guard rules.
- Supports Android 14. It is compliant with Android 14 requirements. For more information, refer to the Android documentation.
- Upgrades the Android Gradle Plugin (AGP) to 8.2.2 for building the SDK and adds related consumer pro guard rules.
February 16
What's New
- Android Platform
- Supports CleverTap Android SDK 6.0.0.
- iOS Platform
- Supports CleverTap iOS SDK 6.0.0.
- Android and iOS Platform
- Adds support for client-side In-Apps.
- Adds new API:
clearInAppResources(boolean)
. It deletes images and GIFs preloaded for In-Apps in CS mode. - Adds new API:
fetchInApps()
. It explicitly fetches In-Apps from the server.
Bug Fixes
- Android Platform
- Fixes a bug where JavaScript does not work for custom HTML in In-App header/footer templates.
- Fixes an NPE related to App Inbox APIs.
- Fixes a
ClassCastException
indefineVariable
API of Product Experiences. - Fixes a resource name conflict with the firebase library in
fcm_fallback_notification_channel_label
. - Fixes a StrictMode Violation spawning from
ctVariables.init()
. - Removes the use of lossy conversions leading to an issue in Push Templates.
- Handles an edge case related to the migration of encryption level when the local database is out of memory.
- iOS Platform
- Fixes a bug where some In-Apps were not being dismissed.
February 8
What's New
- Android Platform
- Supports Signed Call Android SDK v0.0.5 which is compatible with CleverTap Android SDK v5.2.2.
- Introduces the new properties:
initiatorImage
andreceiverImage
in theMissedCallActionClickResult
instance. It is provided through theSignedCall.addListener(SignedCall.SignedCallOnMissedCallActionClicked,(result:MissedCallActionClickResult) => {})
listener. - Introduces a new public API:
SignedCallOnCallStatusListener.register(applicationContext)
. This API allows your application to receive VoIP call events through theSignedCall.SignedCallOnCallStatusChanged
listener even when the app is in a killed state. Refer to the integration documentation for more details.
- iOS Platform
- Supports Signed Call iOS SDK v0.0.6, compatible with CleverTap iOS SDK v5.2.2.
Breaking Changes
- Android and iOS Platform
- The
SignedCall.SignedCallOnCallStatusChanged
listener provides an instance of theCallEventResult
class instead of theCallEvent
class. Refer to the integration documentation for details on usage.
- The
- iOS Platform
- iOS deployment target version has been raised to iOS 12.
Behavior Changes
- Android Platform
- Handles UX issues during network loss or switch by invalidating the socket reconnection and establishing an active connection to process the call-related actions.
- Modifies the SDK's behavior when the Notifications Settings are disabled for the application. Previously, if the app's notifications were disabled, the device rang on incoming calls without displaying the call screen in the background and killed states. In this version, the SDK now declines incoming calls when the notifications are disabled. If the notification settings are later enabled, the SDK resumes processing calls instead of automatically declining them.
- Android and iOS Platform
- The
SignedCall.addListener(SignedCall.SignedCallOnCallStatusChanged,(result:CallEventResult) => {})
listener will now provide updates in the call state to both the initiator and receiver of the call. Previously, it was exposed only to the initiator of the call.
- The
Bug Fixes
- Android Platform
- Fixes multiple outgoing call requests initiated simultaneously through multiple calls of
SignedCall.call(receiverCuid, callContext, callProperties)
. The SDK now processes only one call at a time while rejecting other requests with a failure exception. - Addresses an IllegalStateException that occurs while prompting the user with poor or bad network conditions on the call screen.
- Fixes multiple outgoing call requests initiated simultaneously through multiple calls of
- Android and iOS Platform
- Addresses an infinite Connecting state issue on the call screen triggered by CUIDs longer than 15 characters. In this version, the SDK extends support to CUIDs ranging from 5 to 50 characters.
February 1
What's New
- Web Platform
- Supports CleverTap Web SDK v1.6.10.
Bug Fixes
- Web Platform
- Fixes #213: Invalid error in case of event structure.
Updated 8 months ago