From 4fabc11faabe8d5c1081b1b0982230ae211c4221 Mon Sep 17 00:00:00 2001 From: Rohan Gupta Date: Fri, 19 Dec 2025 12:31:17 +0530 Subject: [PATCH 1/2] [skip ci] Release v2.2.3 This PR contains the automated release updates for version 2.2.3. Changes: - Updated sample app - Updated documentation - Updated README, CHANGELOG, and MIGRATION guide --- CHANGELOG.md | 31 +++++ README.md | 130 +++++++++++------- devrev-sdk-react-native-2.2.3.tgz | Bin 0 -> 41464 bytes sample/package.json | 2 +- sample/react-native/Gemfile | 8 +- .../xcshareddata/swiftpm/Package.resolved | 4 +- 6 files changed, 122 insertions(+), 53 deletions(-) create mode 100644 devrev-sdk-react-native-2.2.3.tgz diff --git a/CHANGELOG.md b/CHANGELOG.md index 7e907f5..d0731f8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,37 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [2.2.3] - 2025-12-18 + +### Added +- Added a capture error API to allow apps to report runtime errors through the SDK (Android). + +### Changed +- Refined rage tap detection logic to avoid misclassifying double taps as rage taps (Android). +- Optimized session recording and network request handling to reduce overhead during active sessions (Android). + +### Fixed +- Fixed timer response rounding to return accurate duration values. +- Fixed incorrect engagement time calculation in crash scenarios. +- Fixed ANRs occurring during SDK initialization on Android. + + +## [2.2.2] - 2025-11-26 + +### Added +- Support for session capturing on Android 16 devices. +- Support for tracking hybrid platforms and their versions. +- iOS only: Added automatic restoration of sessions lost when the app is killed. + +### Changed +- Improved masking behavior on `RecyclerView` scrolls. +- Improved session upload reliability and stability. +- Optimized network bandwidth usage. +- iOS only: Improved crash log parsing and formatting for clearer diagnostics. + +### Fixed +- Fixed an issue in the logout flow. + ## [2.2.1] - 2025-10-17 ### Added diff --git a/README.md b/README.md index c5cf993..67e2222 100644 --- a/README.md +++ b/README.md @@ -3,53 +3,54 @@ DevRev SDK, used for integrating DevRev services into your React Native and Expo apps. - [DevRev SDK for React Native and Expo](#devrev-sdk-for-react-native-and-expo) - - [Quickstart](#quickstart) - - [Requirements](#requirements) - - [Installation](#installation) - - [Expo](#expo) - - [Set up the DevRev SDK](#set-up-the-devrev-sdk) - - [Features](#features) - - [Identification](#identification) - - [Identify an unverified user](#identify-an-unverified-user) - - [Identify a verified user](#identify-a-verified-user) - - [Generate an AAT](#generate-an-aat) - - [Exchange your AAT for a session token](#exchange-your-aat-for-a-session-token) - - [Identify the verified user](#identify-the-verified-user) - - [Update the user](#update-the-user) - - [Logout](#logout) - - [Identity model](#identity-model) - - [Properties](#properties) - - [User traits](#user-traits) - - [Organization traits](#organization-traits) - - [Account traits](#account-traits) - - [Support chat](#support-chat) - - [Create a new support conversation](#create-a-new-support-conversation) - - [In-app link handling](#in-app-link-handling) - - [In-app link callback](#in-app-link-callback) - - [Dynamic theme configuration](#dynamic-theme-configuration) - - [Analytics](#analytics) - - [Session analytics](#session-analytics) - - [Opt in or out](#opt-in-or-out) - - [Session recording](#session-recording) - - [Session properties](#session-properties) - - [Mask sensitive data](#mask-sensitive-data) - - [Mask elements inside web views](#mask-elements-inside-web-views) - - [User interaction tracking](#user-interaction-tracking) - - [Timers](#timers) - - [Track screens](#track-screens) - - [Manage screen transitions (Android only)](#manage-screen-transitions-android-only) - - [Push notifications](#push-notifications) - - [Configuration](#configuration) - - [Register for push notifications](#register-for-push-notifications) - - [Unregister from push notifications](#unregister-from-push-notifications) - - [Handle push notifications](#handle-push-notifications) - - [Android](#android) - - [iOS](#ios) - - [Sample app (without framework)](#sample-app-without-framework) - - [Sample app (Expo)](#sample-app-expo) - - [Troubleshooting](#troubleshooting) - - [ProGuard (Android only)](#proguard-android-only) - - [Migration Guide](#migration-guide) + - [Quickstart](#quickstart) + - [Requirements](#requirements) + - [Installation](#installation) + - [Expo](#expo) + - [Set up the DevRev SDK](#set-up-the-devrev-sdk) + - [Features](#features) + - [Identification](#identification) + - [Identify an unverified user](#identify-an-unverified-user) + - [Identify a verified user](#identify-a-verified-user) + - [Generate an AAT](#generate-an-aat) + - [Exchange your AAT for a session token](#exchange-your-aat-for-a-session-token) + - [Identify the verified user](#identify-the-verified-user) + - [Update the user](#update-the-user) + - [Logout](#logout) + - [Identity model](#identity-model) + - [Properties](#properties) + - [User traits](#user-traits) + - [Organization traits](#organization-traits) + - [Account traits](#account-traits) + - [Support chat](#support-chat) + - [Create a new support conversation](#create-a-new-support-conversation) + - [In-app link handling](#in-app-link-handling) + - [In-app link callback](#in-app-link-callback) + - [Dynamic theme configuration](#dynamic-theme-configuration) + - [Analytics](#analytics) + - [Session analytics](#session-analytics) + - [Opt in or out](#opt-in-or-out) + - [Session recording](#session-recording) + - [Session properties](#session-properties) + - [Mask sensitive data](#mask-sensitive-data) + - [Mask elements inside web views](#mask-elements-inside-web-views) + - [User interaction tracking](#user-interaction-tracking) + - [Timers](#timers) + - [Capture errors](#capture-errors) + - [Track screens](#track-screens) + - [Manage screen transitions (Android only)](#manage-screen-transitions-android-only) + - [Push notifications](#push-notifications) + - [Configuration](#configuration) + - [Register for push notifications](#register-for-push-notifications) + - [Unregister from push notifications](#unregister-from-push-notifications) + - [Handle push notifications](#handle-push-notifications) + - [Android](#android) + - [iOS](#ios) + - [Sample app (without framework)](#sample-app-without-framework) + - [Sample app (Expo)](#sample-app-expo) + - [Troubleshooting](#troubleshooting) + - [ProGuard (Android only)](#proguard-android-only) + - [Migration Guide](#migration-guide) ## Quickstart @@ -479,6 +480,41 @@ To stop a timer, use the following method: DevRev.endTimer(name: string, properties: { [key: string]: string }) ``` +#### Capture errors + +You can report a handled error from a catch block using the `captureError` function. + +This ensures that even if the error is handled in your app, it will still be logged for diagnostics. + +```typescript +DevRev.captureError( + error: Error | string, + tag: string +) +``` + +**Example:** + +```typescript +try { +} catch (error) { + DevRev.captureError( + error, + 'network-failure' + ); +} +``` + +**Example with Error:** + +```typescript +try { + throw new Error('Something went wrong'); +} catch (error) { + DevRev.captureError(error, 'custom-error'); +} +``` + #### Track screens The DevRev SDK offers automatic screen tracking to help you understand how users navigate through your app. Although screens are automatically tracked, you can manually track screens using the following method: diff --git a/devrev-sdk-react-native-2.2.3.tgz b/devrev-sdk-react-native-2.2.3.tgz new file mode 100644 index 0000000000000000000000000000000000000000..6c80b76beeaf5d319cae05129a530979136745d9 GIT binary patch literal 41464 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 lFOME=tj_oUx3d4|TY3Ix{%8JY{^#5K^Z$= 2.6.10" +# Ruby 3.4+ removed kconv from standard library +ruby ">= 2.6.10", "< 3.4.0" # Exclude problematic versions of cocoapods and activesupport that causes build failures. -gem 'cocoapods', '>= 1.13', '!= 1.15.0', '!= 1.15.1' +# CocoaPods version must match the version used to generate Podfile.lock (1.16.2) +gem 'cocoapods', '>= 1.16.2' gem 'activesupport', '>= 6.1.7.5', '!= 7.1.0' -gem 'xcodeproj', '< 1.26.0' +# xcodeproj constraint removed - CocoaPods 1.16.2+ requires xcodeproj >= 1.27.0 gem 'concurrent-ruby', '< 1.3.4' # Ruby 3.4.0 has removed some libraries from the standard library. diff --git a/sample/react-native/ios/DevRevSDKSampleRN.xcworkspace/xcshareddata/swiftpm/Package.resolved b/sample/react-native/ios/DevRevSDKSampleRN.xcworkspace/xcshareddata/swiftpm/Package.resolved index ae2d07c..498abd9 100644 --- a/sample/react-native/ios/DevRevSDKSampleRN.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/sample/react-native/ios/DevRevSDKSampleRN.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -6,8 +6,8 @@ "kind" : "remoteSourceControl", "location" : "git@github.com:devrev/devrev-sdk-ios.git", "state" : { - "revision" : "b394b096d9b8dc015adbe3f58218c985a6a71787", - "version" : "2.2.4" + "revision" : "68e7e4904de5dc5744191efea0bb2ef43a87d008", + "version" : "2.2.5" } } ], From 7d69c3bdbbd4f17e410b2c2247cae838f6c7f617 Mon Sep 17 00:00:00 2001 From: Rohan Gupta Date: Fri, 19 Dec 2025 15:12:07 +0530 Subject: [PATCH 2/2] Trigger CI