diff --git a/CHANGELOG.md b/CHANGELOG.md index 8aa6437..a7e3b77 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -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 + ### 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 diff --git a/android/build.gradle.kts b/android/build.gradle.kts index 5cae16e..00b39c7 100644 --- a/android/build.gradle.kts +++ b/android/build.gradle.kts @@ -1,4 +1,4 @@ -val usercentricsVersion = "2.30.0" +val usercentricsVersion = "2.31.0" val reactNativeVersion = "+" fun BooleanProperty(name: String): Boolean { diff --git a/package-lock.json b/package-lock.json index 7ac8f20..2de0f13 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@usercentrics/react-native-sdk", - "version": "2.30.0", + "version": "2.31.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@usercentrics/react-native-sdk", - "version": "2.30.0", + "version": "2.31.0", "license": "SEE LICENSE IN LICENSE", "devDependencies": { "@babel/core": "^7.25.10", diff --git a/package.json b/package.json index 555f458..80c1133 100644 --- a/package.json +++ b/package.json @@ -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 ", "iosPackageName": "react-native-usercentrics", - "iosPackageVersion": "2.30.0", + "iosPackageVersion": "2.31.0", "license": "SEE LICENSE IN LICENSE", "files": [ "android", diff --git a/sample/ios/Podfile.lock b/sample/ios/Podfile.lock index 4503cae..3359a18 100644 --- a/sample/ios/Podfile.lock +++ b/sample/ios/Podfile.lock @@ -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 @@ -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 @@ -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: @@ -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 @@ -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 diff --git a/sample/ios/sampleTests/Mock/UsercentricsOptions+Mock.swift b/sample/ios/sampleTests/Mock/UsercentricsOptions+Mock.swift index 6f903ae..b57df22 100644 --- a/sample/ios/sampleTests/Mock/UsercentricsOptions+Mock.swift +++ b/sample/ios/sampleTests/Mock/UsercentricsOptions+Mock.swift @@ -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 { diff --git a/sample/package-lock.json b/sample/package-lock.json index aea5d31..42c5183 100644 --- a/sample/package-lock.json +++ b/sample/package-lock.json @@ -12515,7 +12515,7 @@ "version": "5.3.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", - "devOptional": true, + "dev": true, "license": "Apache-2.0", "bin": { "tsc": "bin/tsc",