Skip to content
Merged
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
18 changes: 18 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,22 @@
[Release Notes](https://docs.usercentrics.com/cmp_in_app_sdk/latest/about/history/)
### 2.31.0 – Sep 10, 2026
## Features
* **[Android]** Added edge-to-edge display support for the consent banner, correctly handling system bar insets
* **[React Native]** Added edge-to-edge display support for the consent banner on Android, correctly handling system bar insets
* **[React Native]** Added `controllerId` to the React Native bridge options
* **[Flutter]** Added edge-to-edge display support for the consent banner on Android, correctly handling system bar insets
* **[Flutter]** Added `controllerId` to the Flutter bridge options
* **[Core]** Added `controllerId` injection support to `UsercentricsOptions`
* **[Unreal]** Added native Unreal Engine bridge scaffolding for Android and iOS, wired into the UsercentricsUI compile target

## Fixes
* **[Android]** Fixed the `version` parameter in `UsercentricsOptions` being ignored when a cached settings response already exists

## Chores
* **[Core]** Bumped native Usercentrics SDK to 2.31.0
* **[Security]** Bumped `fastlane` to patch a high-severity `jwt` CVE
* **[Security]** Bumped `fast-xml-builder` to patch a high-severity CVE

Comment thread
islameldesoky95 marked this conversation as resolved.
### 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
2 changes: 1 addition & 1 deletion 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.31.0"
Comment thread
islameldesoky95 marked this conversation as resolved.
val reactNativeVersion = "+"

fun BooleanProperty(name: String): Boolean {
Expand Down
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.31.0",
"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.31.0",
Comment thread
islameldesoky95 marked this conversation as resolved.
"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.31.0):
- boost
- DoubleConversion
- fast_float
Expand All @@ -1951,7 +1951,7 @@ PODS:
- ReactCommon/turbomodule/bridging
- ReactCommon/turbomodule/core
- SocketRocket
- UsercentricsUI (= 2.30.0)
- UsercentricsUI (= 2.31.0)
- 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.31.0)
- UsercentricsUI (2.31.0):
- Usercentrics (= 2.31.0)
- 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: b5d8232a076e87895a90e1f768d31d4726df5bae
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: 907aa15a6dee4335364105859a1ce0cc4834979d
UsercentricsUI: d7242e2bfc4205135a258d3eb79dc4bf551669ba
Yoga: 9b30b783a17681321b52ac507a37219d7d795ace

PODFILE CHECKSUM: 8d257452e9e69d13384a99ee3cd38b42636521da
Expand Down
5 changes: 3 additions & 2 deletions sample/ios/sampleTests/Mock/UsercentricsOptions+Mock.swift
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,9 @@ extension UsercentricsOptions {
timeoutMillis: Int64 = 1000,
consentMediation: Bool = true,
domains: UsercentricsDomains? = nil,
initTimeoutMillis: Int64 = 1000) -> UsercentricsOptions {
return UsercentricsOptions(settingsId: settingsId, defaultLanguage: defaultLanguage, version: version, timeoutMillis: timeoutMillis, loggerLevel: loggerLevel, ruleSetId: ruleSetId, consentMediation: consentMediation, domains: domains, initTimeoutMillis: initTimeoutMillis)
initTimeoutMillis: Int64 = 1000,
controllerId: String? = nil) -> UsercentricsOptions {
return UsercentricsOptions(settingsId: settingsId, defaultLanguage: defaultLanguage, version: version, timeoutMillis: timeoutMillis, loggerLevel: loggerLevel, ruleSetId: ruleSetId, consentMediation: consentMediation, domains: domains, initTimeoutMillis: initTimeoutMillis, controllerId: controllerId)
}

static func asDict(mockObject: UsercentricsOptions? = nil) -> NSDictionary {
Expand Down
2 changes: 1 addition & 1 deletion sample/package-lock.json

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

Loading