Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
[Release Notes](https://docs.usercentrics.com/cmp_in_app_sdk/latest/about/history/)
### 2.27.1 – Aug 25, 2026
## Chores
* **[Core]** Bumped native Usercentrics SDK to 2.27.1.
Comment on lines +2 to +4

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[NITPICK] The new 2.27.1 entry was inserted above the existing 2.30.0 entry, which is confusing because 2.30.0 is a later release. Keep changelog entries in descending chronological order. Also clarify in the entry that this change only updates the native Usercentrics SDK dependency (and whether this is a downgrade), so readers understand the scope (native-only vs. JS/API changes).

[Release Notes](https://docs.usercentrics.com/cmp_in_app_sdk/latest/about/history/)

### 2.30.0 – Aug 19, 2026
## Features
* **[Unity — Mediation]** Added support for Unity's End-User Consent Mode API (`EndUserConsent.SetConsentState`), mapping UC consent decisions to Unity Vector's `AnalyticsIntent`/`AdsIntent` signals — unblocks Unity Ads Vector adoption. Also fixed the dead Unity Ads link in the Consent Mediation docs
* **[Android]** Added APIs to capture and restore in-flight 2nd-layer consent state across Activity recreation (e.g. dark-mode toggles, single-activity navigation hosts), so unsaved user selections are no longer lost
* **[Flutter]** Added Swift Package Manager (SPM) support for the iOS plugin, recommended for Xcode 15+, alongside continued CocoaPods compatibility

## Fixes
* **[Android — Mediation]** Fixed `CrashlyticsMediationSDK` throwing `NoClassDefFoundError` on Firebase BOM 34+ by resolving `FirebaseCrashlytics` via reflection instead of the removed KTX API
* **[Unity/Android]** Fixed a crash during SDK initialization in Unity Development builds on Android (Production builds were unaffected)

### 2.29.1 – Aug 5, 2026
## Features
* **[Unity]** Added `isExempt` to the Unity `ServiceConsent` model, propagating the statistical exception flag to the Unity bridge

### 2.29.0 – Aug 5, 2026
## Features
* **[Mediation]** Added Amazon Consent Signal (ACS) mediation support for Android and iOS, including Adjust adapter integration
* **[PUR Compliance]** Added statistical exception disclosure and toggle UI to the first and second layer, and excluded statistical exception services from Reject All/Deny All, supporting the UK DUAA statistical-exception requirement
* **[Unity]** Automated the Unity-flavored SPM release pipeline, publishing `usercentrics-spm-ui`/`usercentrics-spm-sdk` package tags for Unity releases

## Fixes
* **[Android]** Fixed consent banner rendering behind system bars on edge-to-edge displays
* **[Android]** Fixed `ExternalLinkSpan.onClick` crash on invalid/empty link URLs
* **[iOS]** Fixed app hang caused by synchronous HTML parsing in first-layer banner/content text
* **[Android/iOS]** Removed residual `assert(false)` calls in Additional Consent Mode and CCPA save paths that could crash debug builds
* **[TV]** Fixed `DPAD_DOWN` navigation escaping the second-layer detail list boundary

## Chores
* **[Unity]** Stripped debug symbols from iOS core release binaries, reducing device binary size by ~31% with no functional change

### 2.27.1 – Aug 25, 2026
## Chores
* **[Core]** Downgraded bundled native Usercentrics SDK dependency from 2.30.0 to 2.27.1 (no changes to the React Native JS API surface).


### 2.30.0 – Aug 19, 2026
## Features
* **[Unity — Mediation]** Added support for Unity's End-User Consent Mode API (`EndUserConsent.SetConsentState`), mapping UC consent decisions to Unity Vector's `AnalyticsIntent`/`AdsIntent` signals — unblocks Unity Ads Vector adoption. Also fixed the dead Unity Ads link in the Consent Mediation docs
Expand Down
4 changes: 2 additions & 2 deletions android/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
val usercentricsVersion = "2.30.0"
val usercentricsVersion = "2.27.1"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[CRITICAL_BUG] The usercentricsVersion was changed from "2.30.0" to "2.27.1" (a downgrade). Confirm this is intentional. If you intended to bump the native SDK, set the correct newer version; if you intended to pin to 2.27.1, ensure downstream Android build files and publication metadata (Maven coordinates, dependency availability) are consistent. Run a full Android build (assemblePublish / ./gradlew assemble) and integration tests to verify no missing artifacts or API incompatibilities. Also ensure this value stays in sync with any iOS/native version metadata.

// If the intent is to truly bump to 2.27.1 (rollback from 2.30.0),
// keep Android/iOS/native metadata consistent as already done in package.json
// and changelog. Consider adding a short comment to document why this
// version is lower than the previous tag to avoid future confusion.
val usercentricsVersion = "2.27.1"

val reactNativeVersion = "+"

fun BooleanProperty(name: String): Boolean {
Expand Down Expand Up @@ -97,4 +97,4 @@ afterEvaluate {
dependsOn(":usercentrics_react-native-sdk:generateReleaseResValues")
}
}
}
}
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
{
"name": "@usercentrics/react-native-sdk",
"version": "2.30.0",
"version": "2.27.1",
"description": "Usercentrics SDK",
"homepage": "https://usercentrics.com",
"main": "lib/index.js",
"types": "lib/index.d.ts",
"author": "Usercentrics <developer@usercentrics.com>",
"iosPackageName": "react-native-usercentrics",
"iosPackageVersion": "2.30.0",
"iosPackageVersion": "2.27.1",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[VALIDATION] You updated "iosPackageVersion" to "2.27.1". If this is meant to reflect the native iOS SDK version, confirm that the iOS Podspec (react-native-usercentrics.podspec), any CocoaPods/publish metadata, and native iOS binary used in the ios/ folder are updated to match. Run pod install / a sample iOS build to verify the specified version is resolvable and the API is compatible with the JS bridge.

{
  "name": "@usercentrics/react-native-sdk",
  "version": "2.27.1",
  "description": "Usercentrics SDK",
  "homepage": "https://usercentrics.com",
  "main": "lib/index.js",
  "types": "lib/index.d.ts",
  "author": "Usercentrics <developer@usercentrics.com>",
  "iosPackageName": "react-native-usercentrics",
  "iosPackageVersion": "2.27.1",
  "license": "SEE LICENSE IN LICENSE",
  "files": [
    "android",
    "ios",
    "lib",
    "src",
    "react-native-usercentrics.podspec",
    "react-native.config.js",
    "!.DS_Store",
    "!.gradle",
    "!.idea",
    "!build",
    "!gradle",
    "!*.iml",
    "!gradlew",
    "!gradlew.bat",
    "!local.properties",
    "!project.xcworkspace",
    "!xcshareddata",
    "!xcuserdata"
  ]
}

"license": "SEE LICENSE IN LICENSE",
"files": [
"android",
Expand Down
16 changes: 8 additions & 8 deletions sample/ios/Podfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -1924,7 +1924,7 @@ PODS:
- ReactCommon/turbomodule/core
- SocketRocket
- Yoga
- react-native-usercentrics (2.30.0):
- react-native-usercentrics (2.27.1):
- boost
- DoubleConversion
- fast_float
Expand All @@ -1951,7 +1951,7 @@ PODS:
- ReactCommon/turbomodule/bridging
- ReactCommon/turbomodule/core
- SocketRocket
- UsercentricsUI (= 2.30.0)
- UsercentricsUI (= 2.27.1)
- Yoga
- react-native-webview (13.16.1):
- boost
Expand Down Expand Up @@ -2546,9 +2546,9 @@ PODS:
- SocketRocket
- Yoga
- SocketRocket (0.7.1)
- Usercentrics (2.30.0)
- UsercentricsUI (2.30.0):
- Usercentrics (= 2.30.0)
- Usercentrics (2.27.1)
- UsercentricsUI (2.27.1):
- Usercentrics (= 2.27.1)
- Yoga (0.0.0)

DEPENDENCIES:
Expand Down Expand Up @@ -2850,7 +2850,7 @@ SPEC CHECKSUMS:
React-Mapbuffer: e4a65db5f4df53369f39558c0cf2f480f6d3d6c7
React-microtasksnativemodule: 86334c5c06315e0bccb7b6e6f2c905e92f98b615
react-native-safe-area-context: eda63a662750758c1fdd7e719c9f1026c8d161cb
react-native-usercentrics: 50a5d5954c268060c01e68ada86db0e94b99c534
react-native-usercentrics: 508fb8caa7287f9b7a1ca834bf8ab7b75652c987
react-native-webview: 83c663c5bdf1357d3e7c00986260cb888ea0e328
React-NativeModulesApple: 8c7eb6057b00c191a11ad5ced41826ec5a0e4d78
React-oscompat: 93b5535ea7f7dff46aaee4f78309a70979bdde9d
Expand Down Expand Up @@ -2884,8 +2884,8 @@ SPEC CHECKSUMS:
ReactCommon: e9ab32f1d1482d207867b4fdd139361302b9dcc6
RNScreens: e902eba58a27d3ad399a495d578e8aba3ea0f490
SocketRocket: d4aabe649be1e368d1318fdf28a022d714d65748
Usercentrics: 567d5a7fae74bf873d295135c2acce2569997c3d
UsercentricsUI: 2d82365e63124398120d2af121fc6d2e1835aaeb
Usercentrics: bfc1ece9c6bf318ba0ad2bd68a2e28a7d7124f36
UsercentricsUI: b33b6470a1e686bf372e638cb107bc1e3a93671e
Yoga: 9b30b783a17681321b52ac507a37219d7d795ace

PODFILE CHECKSUM: 8d257452e9e69d13384a99ee3cd38b42636521da
Expand Down
Loading