Skip to content

Release: 2.25.0#184

Merged
uc-brunosilva merged 1 commit intomasterfrom
release/2.25.0
Feb 23, 2026
Merged

Release: 2.25.0#184
uc-brunosilva merged 1 commit intomasterfrom
release/2.25.0

Conversation

@uc-brunosilva
Copy link
Collaborator

@uc-brunosilva uc-brunosilva commented Feb 23, 2026

CodeAnt-AI Description

Release 2.25.0: add TCF Legitimate Interest parameter and compatibility fixes

What Changed

  • SDK version bumped to 2.25.0 and package metadata updated accordingly
  • Added unsavedPurposeLIDecisions parameter to denyAllForTCF so apps can deny purposes based on TCF Legitimate Interest decisions
  • Updated iOS sample project and build settings to align with the updated Usercentrics SDK (includes framework references and disables the new React Native architecture in the sample)
  • Adjusted project files to avoid build-time mismatches with the updated SDK API

Impact

✅ Supports TCF Legitimate Interest denials
✅ Fewer iOS sample build failures after SDK upgrade
✅ Updated package version for consistent installs

💡 Usage Guide

Checking Your Pull Request

Every time you make a pull request, our system automatically looks through it. We check for security issues, mistakes in how you're setting up your infrastructure, and common code problems. We do this to make sure your changes are solid and won't cause any trouble later.

Talking to CodeAnt AI

Got a question or need a hand with something in your pull request? You can easily get in touch with CodeAnt AI right here. Just type the following in a comment on your pull request, and replace "Your question here" with whatever you want to ask:

@codeant-ai ask: Your question here

This lets you have a chat with CodeAnt AI about your pull request, making it easier to understand and improve your code.

Example

@codeant-ai ask: Can you suggest a safer alternative to storing this secret?

Preserve Org Learnings with CodeAnt

You can record team preferences so CodeAnt AI applies them in future reviews. Reply directly to the specific CodeAnt AI suggestion (in the same thread) and replace "Your feedback here" with your input:

@codeant-ai: Your feedback here

This helps CodeAnt AI learn and adapt to your team's coding style and standards.

Example

@codeant-ai: Do not flag unused imports.

Retrigger review

Ask CodeAnt AI to review the PR again, by typing:

@codeant-ai: review

Check Your Repository Health

To analyze the health of your code repository, visit our dashboard at https://app.codeant.ai. This tool helps you identify potential issues and areas for improvement in your codebase, ensuring your repository maintains high standards of code health.

Summary by CodeRabbit

  • New Features

    • TCF vendor disclosures now include specialPurposes and optOut fields.
    • Second‑layer UI shows an SDKs section with SDK name and usage.
  • Chores

    • Bumped package and native SDK versions to 2.25.0.
    • iOS sample configuration updated with a new runtime architecture flag.

@uc-brunosilva uc-brunosilva self-assigned this Feb 23, 2026
@uc-brunosilva uc-brunosilva requested review from islameldesoky95 and uc-brunosouza and removed request for islameldesoky95 February 23, 2026 17:05
@qodo-code-review
Copy link

Review Summary by Qodo

Release version 2.25.0 with TCF Legitimate Interest support

✨ Enhancement

Grey Divider

Walkthroughs

Description
• Bumped version from 2.24.4 to 2.25.0 across all configuration files
• Added unsavedPurposeLIDecisions parameter support for TCF Legitimate Interest
• Fixed compatibility with Usercentrics SDK API updates
• Updated iOS project build configuration and framework references
Diagram
flowchart LR
  A["Version 2.24.4"] -->|"Bump version"| B["Version 2.25.0"]
  B -->|"Update configs"| C["Build files"]
  B -->|"Add feature"| D["TCF LI Support"]
  B -->|"Fix compatibility"| E["SDK API Updates"]
  C -->|"iOS project"| F["Framework refs"]
  C -->|"Android gradle"| G["Build config"]
  C -->|"Package.json"| H["NPM metadata"]
Loading

Grey Divider

File Changes

1. android/build.gradle.kts ⚙️ Configuration changes +1/-1

Update Android SDK version to 2.25.0

• Updated usercentricsVersion from 2.24.4 to 2.25.0

android/build.gradle.kts


2. CHANGELOG.md 📝 Documentation +5/-0

Add release notes for version 2.25.0

• Added new release notes for version 2.25.0 dated Feb 23, 2026
• Documented improvement for unsavedPurposeLIDecisions parameter in denyAllForTCF
• Noted SDK API compatibility fixes

CHANGELOG.md


3. package.json ⚙️ Configuration changes +2/-2

Update package versions to 2.25.0

• Updated package version from 2.24.4 to 2.25.0
• Updated iOS package version from 2.24.4 to 2.25.0

package.json


View more (2)
4. sample/ios/sample.xcodeproj/project.pbxproj ⚙️ Configuration changes +20/-27

Update iOS project build configuration and frameworks

• Added new framework references for Pods_sample.framework and Pods_sampleTests.framework
• Removed duplicate and outdated framework references
• Removed sample-Bridging-Header.h from project group
• Removed deprecated [CP] Check Pods Manifest.lock build phase
• Added React-runtimeexecutor framework headers to build configuration
• Reformatted OTHER_LDFLAGS from string to array format in both Debug and Release configurations

sample/ios/sample.xcodeproj/project.pbxproj


5. sample/ios/sample/Info.plist ⚙️ Configuration changes +2/-0

Add React Native new architecture configuration

• Added RCTNewArchEnabled key set to false for React Native new architecture opt-out

sample/ios/sample/Info.plist


Grey Divider

Qodo Logo

@qodo-code-review
Copy link

qodo-code-review bot commented Feb 23, 2026

Code Review by Qodo

🐞 Bugs (3) 📘 Rule violations (0) 📎 Requirement gaps (0)

Grey Divider


Action required

1. Duplicate Pods_sample link 🐞 Bug ✓ Correctness
Description
The sample app target links Pods_sample.framework twice (two PBXBuildFile entries and both
included in the Frameworks build phase). This can produce duplicate-link warnings or fail the link
step for the sample app.
Code

sample/ios/sample.xcodeproj/project.pbxproj[R64-65]

				34B3E2DD783AD296B9753613 /* Pods_sample.framework in Frameworks */,
+				5CBE5C95939F906B44BB6022 /* Pods_sample.framework in Frameworks */,
Evidence
The pbxproj defines two separate build-file IDs for the same Pods_sample.framework and includes
both in the sample target’s Frameworks build phase; it also contains two PBXFileReference IDs for
Pods_sample.framework, indicating duplication rather than a clean replacement.

sample/ios/sample.xcodeproj/project.pbxproj[9-16]
sample/ios/sample.xcodeproj/project.pbxproj[59-67]
sample/ios/sample.xcodeproj/project.pbxproj[30-44]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

### Issue description
`Pods_sample.framework` is linked twice in the sample app target, due to duplicated PBXBuildFile/PBXFileReference entries. This can cause link failures or duplicate-link warnings.

### Issue Context
This appears to be an Xcode/CocoaPods project file churn where a previous framework reference wasn’t fully replaced.

### Fix Focus Areas
- sample/ios/sample.xcodeproj/project.pbxproj[9-16]
- sample/ios/sample.xcodeproj/project.pbxproj[30-46]
- sample/ios/sample.xcodeproj/project.pbxproj[59-67]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


2. Duplicate test pods link 🐞 Bug ✓ Correctness
Description
The sample test target links Pods_sampleTests.framework twice (two PBXBuildFile entries and both
included in the Frameworks build phase). This can break the test target link step or cause
duplicate-link warnings.
Code

sample/ios/sample.xcodeproj/project.pbxproj[R73-74]

				77548F352FCA728ECC0F1955 /* Pods_sampleTests.framework in Frameworks */,
+				5BBD0ED34153A6C427FF0245 /* Pods_sampleTests.framework in Frameworks */,
Evidence
The pbxproj defines two build-file IDs for Pods_sampleTests.framework and includes both in the
test target’s Frameworks build phase; there are also two PBXFileReference IDs for the same
framework.

sample/ios/sample.xcodeproj/project.pbxproj[11-16]
sample/ios/sample.xcodeproj/project.pbxproj[69-76]
sample/ios/sample.xcodeproj/project.pbxproj[36-46]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

### Issue description
`Pods_sampleTests.framework` is linked twice in the sampleTests target due to duplicated PBXBuildFile/PBXFileReference entries.

### Issue Context
This is likely an incomplete replacement during CocoaPods/Xcode project regeneration.

### Fix Focus Areas
- sample/ios/sample.xcodeproj/project.pbxproj[11-16]
- sample/ios/sample.xcodeproj/project.pbxproj[36-46]
- sample/ios/sample.xcodeproj/project.pbxproj[69-76]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools



Remediation recommended

3. Blank linker flag item 🐞 Bug ⛯ Reliability
Description
OTHER_LDFLAGS now contains a literal whitespace entry (" ") for Debug/Release, likely due to an
automated conversion that preserved trailing spaces. This is at best noisy and at worst could be
forwarded as an unexpected linker argument in some environments.
Code

sample/ios/sample.xcodeproj/project.pbxproj[R523-526]

+				OTHER_LDFLAGS = (
+					"$(inherited)",
+					" ",
+				);
Evidence
The project file explicitly includes a standalone whitespace string in OTHER_LDFLAGS for both
Debug and Release configurations.

sample/ios/sample.xcodeproj/project.pbxproj[523-526]
sample/ios/sample.xcodeproj/project.pbxproj[612-615]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

### Issue description
`OTHER_LDFLAGS` includes an explicit whitespace-only item (`" "`). This is an invalid/meaningless flag and can cause unexpected behavior or at least build noise.

### Issue Context
This looks like a transformation from `"$(inherited)  "` into a list that preserved trailing spaces as a separate list item.

### Fix Focus Areas
- sample/ios/sample.xcodeproj/project.pbxproj[523-526]
- sample/ios/sample.xcodeproj/project.pbxproj[612-615]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


Grey Divider

ⓘ The new review experience is currently in Beta. Learn more

Grey Divider

Qodo Logo

@codeant-ai
Copy link

codeant-ai bot commented Feb 23, 2026

CodeAnt AI is reviewing your PR.


Thanks for using CodeAnt! 🎉

We're free for open-source projects. if you're enjoying it, help us grow by sharing.

Share on X ·
Reddit ·
LinkedIn

@coderabbitai
Copy link

coderabbitai bot commented Feb 23, 2026

📝 Walkthrough

Walkthrough

Bumps package and Android SDK versions to 2.25.0, adds a CHANGELOG entry describing TCF vendor disclosure fields (specialPurposes, optOut) and a second-layer SDKs section, updates iOS sample Xcode project and Info.plist, and adjusts iOS test mocks for new fields.

Changes

Cohort / File(s) Summary
Release / Version
CHANGELOG.md, package.json, android/build-legacy.gradle, android/build.gradle.kts
Bumped versions to 2.25.0 in package.json, iosPackageVersion, and Android build files; added CHANGELOG entry describing specialPurposes and optOut in TCF vendor disclosures and a second-layer SDKs section.
iOS Xcode project
sample/ios/sample.xcodeproj/project.pbxproj
Added Pod framework file references and build entries, expanded React header search paths (including runtimeexecutor), converted OTHER_LDFLAGS to array style, and removed the [CP] Check Pods Manifest.lock build phase.
iOS App config
sample/ios/sample/Info.plist
Added RCTNewArchEnabled key set to false.
iOS Tests / Mocks
example/ios/exampleTests/Mock/CMPData+Mock.swift, sample/ios/sampleTests/Mock/CMPData+Mock.swift
Updated mock initializers: added gpp: nil to UsercentricsSettings.mock() and added specialPurposes: [] and optOut: false to ConsentDisclosure.mock().

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Suggested labels

Review effort 1/5, size:XL

Suggested reviewers

  • uc-brunosouza
  • islameldesoky95
  • souzabrunoj

Poem

🐇 I hopped to bump a tiny dot,
New fields and SDKs in the lot.
Headers, frameworks, mocks aligned,
Version 2.25.0 — a carrot signed.
Hooray, the rabbit did a hopping trot!

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'Release: 2.25.0' directly and clearly corresponds to the main objective of the PR, which is a version bump release to 2.25.0 with updates across multiple files (package.json, build.gradle files, and iOS configuration).

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
  • 📝 Generate docstrings (stacked PR)
  • 📝 Generate docstrings (commit on current branch)
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch release/2.25.0

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@codeant-ai codeant-ai bot added the size:XXL This PR changes 1000+ lines, ignoring generated files label Feb 23, 2026
@codeant-ai
Copy link

codeant-ai bot commented Feb 23, 2026

Sequence Diagram

Shows the new call flow added in this release where denyAllForTCF accepts an optional unsavedPurposeLIDecisions parameter and passes it from the JS API down to the native SDK to support TCF Legitimate Interest handling.

sequenceDiagram
    participant App as Client
    participant JS as Usercentrics (JS API)
    participant Native as RNUsercentricsModule
    participant SDK as Platform SDK

    App->>JS: call denyAllForTCF(fromLayer, consentType, unsavedPurposeLIDecisions?)
    JS->>Native: isReady() then denyAllForTCF(fromLayer, consentType, unsavedPurposeLIDecisions)
    Native->>SDK: invoke denyAllForTCF with provided params
    SDK-->>Native: updated consents
    Native-->>JS: resolved consents
    JS-->>App: Promise resolves (Array<UsercentricsServiceConsent>)
Loading

Generated by CodeAnt AI

@pantoaibot
Copy link

pantoaibot bot commented Feb 23, 2026

PR Summary:

Release 2.25.0: bump package versions, add TCF Legitimate Interest support (new denyAllForTCF parameter), and update sample iOS project and Android build metadata for SDK compatibility.

  • CHANGELOG: New 2.25.0 entry — added unsavedPurposeLIDecisions parameter to denyAllForTCF (TCF Legitimate Interest) and compatibility fixes for Usercentrics SDK API updates.
  • Version bumps: package.json (2.24.4 → 2.25.0) and android build files (usercentrics_version / usercentricsVersion → 2.25.0).
  • Android build: updated build.gradle.kts/legacy metadata (version variable). No API/behavior changes in source code other than metadata.
  • iOS sample project (project.pbxproj):
    • Added Pods_sample.framework and Pods_sampleTests.framework entries and file references.
    • Removed a duplicate/old "[CP] Check Pods Manifest.lock" shell build phase.
    • Added React_runtimeexecutor header search paths to both Debug and Release configurations.
    • Converted OTHER_LDFLAGS from a single string to an array in Debug and Release.
  • sample Info.plist: added RCTNewArchEnabled = false (sample-level flag for RN new architecture).
  • Notes / potential impacts:
    • The TCF change is an additive parameter (not a breaking API change) to support Legitimate Interest behavior.
    • Sample iOS project changes may require running pod install / syncing CocoaPods and could affect builds targeting the RN new architecture; production SDK consumers should be unaffected beyond the documented API compatibility fixes.

Reviewed by Panto AI

@codeant-ai
Copy link

codeant-ai bot commented Feb 23, 2026

Nitpicks 🔍

🔒 No security issues identified
⚡ Recommended areas for review

  • Duplicate Framework References
    The PR adds multiple PBXBuildFile/PBXFileReference entries for the same frameworks (e.g. Pods_sample.framework and Pods_sampleTests.framework). Duplicate references can cause Xcode to embed/link the same framework twice, resulting in linker errors, ambiguous references, or larger bundles. Verify and consolidate to a single fileRef / build-file per actual framework.

  • New header search paths added
    Header search paths for React-runtimeexecutor were added. Ensure the referenced frameworks/headers actually exist in the build output paths for all configurations (Debug/Release) and for both device/simulator; otherwise builds may fail with missing header errors.

  • Version bump compatibility
    Bumping usercentricsVersion may introduce runtime/API changes or require other dependency updates (transitive or compile-time). Validate that the new SDK (2.25.0) is compatible with the project's compileSdk/minSdk, React Native version, and other SDKs used in the module. Run integration and instrumentation tests and confirm changelog for breaking changes.

  • RCTNewArchEnabled flag set
    The Info.plist adds RCTNewArchEnabled set to false. Confirm this is intentionally disabling the new React Native architecture across this sample app and is consistent with the installed React Native version and build settings. Mismatches can lead to runtime or build-time inconsistencies.

  • Suspicious OTHER_LDFLAGS entry
    OTHER_LDFLAGS is set to an array that contains a literal whitespace string (" "). This likely doesn't have the intended effect and may cause unexpected linker behavior. Consider removing the empty entry or using explicit linker flags only.

Comment on lines 64 to +65
34B3E2DD783AD296B9753613 /* Pods_sample.framework in Frameworks */,
5CBE5C95939F906B44BB6022 /* Pods_sample.framework in Frameworks */,

Choose a reason for hiding this comment

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

Action required

1. Duplicate pods_sample link 🐞 Bug ✓ Correctness

The sample app target links Pods_sample.framework twice (two PBXBuildFile entries and both
included in the Frameworks build phase). This can produce duplicate-link warnings or fail the link
step for the sample app.
Agent Prompt
### Issue description
`Pods_sample.framework` is linked twice in the sample app target, due to duplicated PBXBuildFile/PBXFileReference entries. This can cause link failures or duplicate-link warnings.

### Issue Context
This appears to be an Xcode/CocoaPods project file churn where a previous framework reference wasn’t fully replaced.

### Fix Focus Areas
- sample/ios/sample.xcodeproj/project.pbxproj[9-16]
- sample/ios/sample.xcodeproj/project.pbxproj[30-46]
- sample/ios/sample.xcodeproj/project.pbxproj[59-67]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

Comment on lines 73 to +74
77548F352FCA728ECC0F1955 /* Pods_sampleTests.framework in Frameworks */,
5BBD0ED34153A6C427FF0245 /* Pods_sampleTests.framework in Frameworks */,

Choose a reason for hiding this comment

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

Action required

2. Duplicate test pods link 🐞 Bug ✓ Correctness

The sample test target links Pods_sampleTests.framework twice (two PBXBuildFile entries and both
included in the Frameworks build phase). This can break the test target link step or cause
duplicate-link warnings.
Agent Prompt
### Issue description
`Pods_sampleTests.framework` is linked twice in the sampleTests target due to duplicated PBXBuildFile/PBXFileReference entries.

### Issue Context
This is likely an incomplete replacement during CocoaPods/Xcode project regeneration.

### Fix Focus Areas
- sample/ios/sample.xcodeproj/project.pbxproj[11-16]
- sample/ios/sample.xcodeproj/project.pbxproj[36-46]
- sample/ios/sample.xcodeproj/project.pbxproj[69-76]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; };
34B3E2DD783AD296B9753613 /* Pods_sample.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D5881D94DCC31AD3CAAE15C6 /* Pods_sample.framework */; };
5BBD0ED34153A6C427FF0245 /* Pods_sampleTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EB1FFF0FB7E8E4ADD20435FF /* Pods_sampleTests.framework */; };
5CBE5C95939F906B44BB6022 /* Pods_sample.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0447FC5F4FA6C8BE48264989 /* Pods_sample.framework */; };
Copy link

Choose a reason for hiding this comment

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

Suggestion: The Pods_sample.framework is added twice to the main app target's Frameworks build phase, which can cause duplicate linking warnings or errors during build; removing the extra build file entry avoids linking the same framework twice. [possible bug]

Severity Level: Major ⚠️
- ⚠️ Sample iOS app target links Pods_sample.framework twice.
- ⚠️ Builds may emit duplicate-framework linker warnings.
- ⚠️ Strict CI settings could treat these warnings as errors.
Suggested change
5CBE5C95939F906B44BB6022 /* Pods_sample.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0447FC5F4FA6C8BE48264989 /* Pods_sample.framework */; };
Steps of Reproduction ✅
1. Open the Xcode project at `sample/ios/sample.xcodeproj` (project file `project.pbxproj`
at `/workspace/react-native-sdk/sample/ios/sample.xcodeproj/project.pbxproj`).

2. Note in the PBXBuildFile section around lines 11–13 that there are two build file
entries for `Pods_sample.framework` (IDs `34B3E2DD783AD296B9753613` at line 11 and
`5CBE5C95939F906B44BB6022` at line 13), both pointing to `Pods_sample.framework` file
references (lines 31 and 43).

3. In the PBXFrameworksBuildPhase for the main app target `sample` at lines 60–68, observe
that both build file IDs `34B3E2DD783AD296B9753613` and `5CBE5C95939F906B44BB6022` are
listed in the `files = (...)` array (lines 64–65), meaning Xcode will attempt to link
`Pods_sample.framework` twice whenever the `sample` target is built.

4. Build the `sample` target (e.g., via Xcode or `xcodebuild -project
sample/ios/sample.xcodeproj -scheme sample`); the linker is invoked with
`Pods_sample.framework` included twice due to the duplicate PBXBuildFile entries, which
can lead to duplicate-framework link warnings and, under stricter warning-as-error
settings, potential build failures for the sample iOS app.
Prompt for AI Agent 🤖
This is a comment left during a code review.

**Path:** sample/ios/sample.xcodeproj/project.pbxproj
**Line:** 13:13
**Comment:**
	*Possible Bug: The `Pods_sample.framework` is added twice to the main app target's Frameworks build phase, which can cause duplicate linking warnings or errors during build; removing the extra build file entry avoids linking the same framework twice.

Validate the correctness of the flagged issue. If correct, How can I resolve this? If you propose a fix, implement it and please make it concise.
👍 | 👎

@codeant-ai
Copy link

codeant-ai bot commented Feb 23, 2026

CodeAnt AI finished reviewing your PR.

Comment on lines +523 to +526
OTHER_LDFLAGS = (
"$(inherited)",
" ",
);
Copy link

Choose a reason for hiding this comment

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

[CRITICAL_BUG] OTHER_LDFLAGS was changed from a string to an array that contains a single blank string entry (" "). This may produce invalid linker flags or unexpected behavior during iOS linking. Revert to a proper array of flags or a single string as appropriate (e.g. OTHER_LDFLAGS = ("$(inherited)", "-ObjC", "-lc++");) or simply keep the original "$(inherited)" string. Remove the explicit blank string element.

			OTHER_LDFLAGS = (
				"$(inherited)",
				"-ObjC",
				"-lc++",
			);

Comment on lines +36 to +37
<key>RCTNewArchEnabled</key>
<false/>
Copy link

Choose a reason for hiding this comment

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

[VALIDATION] You added RCTNewArchEnabled = false to the sample Info.plist. Confirm this is intentional: if other changes in the PR (like adding runtimeexecutor headers) are intended to support the New Architecture, having RCTNewArchEnabled=false may be contradictory. Make sure the sample target's architecture flag aligns with the native code and Pod configuration.

<key>RCTNewArchEnabled</key>
<true/>

Comment on lines +3 to +10
"version": "2.25.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.24.4",
"iosPackageVersion": "2.25.0",
Copy link

Choose a reason for hiding this comment

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

[VALIDATION] You bumped package version and iosPackageVersion to 2.25.0 — ensure corresponding native artifacts are updated: update the iOS podspec version (react-native-usercentrics.podspec) and any native version constants (if present) so they remain in sync with package.json. Also confirm build/publish scripts (prepare/compile) are run in CI to produce updated lib/ and pod artifacts for publishing.

@pantoaibot
Copy link

pantoaibot bot commented Feb 23, 2026

Reviewed up to commit:be3a0cf5ccf5dea46f8f801b67bd607de5cf9fac

Additional Suggestion
sample/ios/sample.xcodeproj/project.pbxproj, line:498-499 Header search paths for React-runtimeexecutor were added to both Debug and Release header search paths. Ensure your Podfile/Pods contain React_runtimeexecutor (and matching frameworks) for the RN version used by the sample; if not, CocoaPods will fail to produce these frameworks and the build will break. If this change targets a newer RN/new-arch configuration, gate these additions behind an RN version or project setting to avoid breaking older setups.
HEADER_SEARCH_PATHS = (
	"$(inherited)",
	"${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers",
	"${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon/ReactCommon.framework/Headers/react/nativemodule/core",
	"${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon-Samples/ReactCommon_Samples.framework/Headers",
	"${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon-Samples/ReactCommon_Samples.framework/Headers/platform/ios",
	"${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers/react/renderer/components/view/platform/cxx",
	"${PODS_CONFIGURATION_BUILD_DIR}/React-NativeModulesApple/React_NativeModulesApple.framework/Headers",
	"${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers",
	"${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers/react/renderer/graphics/platform/ios",
	"${PODS_CONFIGURATION_BUILD_DIR}/React-runtimeexecutor/React_runtimeexecutor.framework/Headers",
	"${PODS_CONFIGURATION_BUILD_DIR}/React-runtimeexecutor/React_runtimeexecutor.framework/Headers/platform/ios",
);

Reviewed by Panto AI


Few more points:

  • [CRITICAL_BUG] There are duplicate/near-duplicate entries for Pods_sample.framework in the PBXFrameworksBuildPhase / PBXBuildFile sections (multiple file refs pointing to pods frameworks). This can cause duplicate linking or ambiguous references. Consolidate to a single PBXFileReference / PBXBuildFile entry per framework and update any references to point to that single entry.
/* Remove the extra Pods_sample.framework references and keep a single one */
34B3E2DD783AD296B9753613 /* Pods_sample.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D5881D94DCC31AD3CAAE15C6 /* Pods_sample.framework */; };

/* ... later in PBXFrameworksBuildPhase files list ... */
files = (
	34B3E2DD783AD296B9753613 /* Pods_sample.framework in Frameworks */,
);

/* In Frameworks group keep a single Pods_sample.framework fileRef */
2D16E6871FA4F8E400B85C8A /* Frameworks */ = {
	isa = PBXGroup;
	children = (
		ED297162215061F000B7C4FE /* JavaScriptCore.framework */,
		D5881D94DCC31AD3CAAE15C6 /* Pods_sample.framework */,
		EB1FFF0FB7E8E4ADD20435FF /* Pods_sampleTests.framework */,
	);
	name = Frameworks;
	sourceTree = "<group>";
};

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

> [!CAUTION]

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
sample/ios/sample.xcodeproj/project.pbxproj (1)

60-77: ⚠️ Potential issue | 🟡 Minor

Duplicate framework entries in PBXFrameworksBuildPhase for both targets.

After this PR, each Frameworks build phase now contains two entries for the same framework:

  • sample target (lines 64–65): 34B3E2DD... (fileRef D5881D94...) and 5CBE5C95... (fileRef 0447FC5F...) both resolve to Pods_sample.framework at BUILT_PRODUCTS_DIR.
  • sampleTests target (lines 73–74): 77548F35... (fileRef 17CBE8E1...) and 5BBD0ED3... (fileRef EB1FFF0F...) both resolve to Pods_sampleTests.framework at BUILT_PRODUCTS_DIR.

The new file-reference UUIDs were correctly added to the Frameworks group (lines 97–98), but the pre-existing old PBXBuildFile entries (lines 11, 15) referencing the old UUIDs were not removed. The result is duplicate link-phase entries pointing to the same on-disk framework, which typically produces Xcode linker warnings and occasionally causes hard linker errors with static frameworks.

This looks like a pod install artifact. The old PBXBuildFile entries (34B3E2DD... and 77548F35...) and their corresponding PBXFileReference entries (D5881D94... and 17CBE8E1...) should be removed.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@sample/ios/sample.xcodeproj/project.pbxproj` around lines 60 - 77, Remove the
stale PBXBuildFile and PBXFileReference entries that cause duplicate framework
links: delete the old PBXBuildFile entries with UUIDs 34B3E2DD783AD296B9753613
and 77548F352FCA728ECC0F1955 from the PBXFrameworksBuildPhase file lists, and
also remove their corresponding PBXFileReference entries with UUIDs D5881D94...
and 17CBE8E1... (the ones that resolve to Pods_sample.framework and
Pods_sampleTests.framework). Ensure only the new PBXBuildFile/PBXFileReference
UUIDs (5CBE5C95939F906B44BB6022 and 5BBD0ED34153A6C427FF0245 and their matching
fileRefs) remain in the Frameworks build phases so each framework is referenced
once.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Outside diff comments:
In `@sample/ios/sample.xcodeproj/project.pbxproj`:
- Around line 60-77: Remove the stale PBXBuildFile and PBXFileReference entries
that cause duplicate framework links: delete the old PBXBuildFile entries with
UUIDs 34B3E2DD783AD296B9753613 and 77548F352FCA728ECC0F1955 from the
PBXFrameworksBuildPhase file lists, and also remove their corresponding
PBXFileReference entries with UUIDs D5881D94... and 17CBE8E1... (the ones that
resolve to Pods_sample.framework and Pods_sampleTests.framework). Ensure only
the new PBXBuildFile/PBXFileReference UUIDs (5CBE5C95939F906B44BB6022 and
5BBD0ED34153A6C427FF0245 and their matching fileRefs) remain in the Frameworks
build phases so each framework is referenced once.

ℹ️ Review info

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 13a010c and be3a0cf.

⛔ Files ignored due to path filters (3)
  • legacy-sample/package-lock.json is excluded by !**/package-lock.json
  • package-lock.json is excluded by !**/package-lock.json
  • sample/ios/Podfile.lock is excluded by !**/*.lock
📒 Files selected for processing (6)
  • CHANGELOG.md
  • android/build-legacy.gradle
  • android/build.gradle.kts
  • package.json
  • sample/ios/sample.xcodeproj/project.pbxproj
  • sample/ios/sample/Info.plist

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

♻️ Duplicate comments (1)
sample/ios/sample.xcodeproj/project.pbxproj (1)

523-526: ⚠️ Potential issue | 🟡 Minor

Unresolved: blank string in OTHER_LDFLAGS persists in both Debug and Release project configs.

The spurious " " entry is present in both the project-level Debug (lines 523–526) and Release (lines 612–615) XCBuildConfiguration blocks, matching the issue already raised in a prior review. This should be cleaned up as noted previously.

Also applies to: 612-615

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@sample/ios/sample.xcodeproj/project.pbxproj` around lines 523 - 526, Remove
the spurious blank string entry (" ") from the OTHER_LDFLAGS array in the
project-level XCBuildConfiguration blocks for both Debug and Release so the
flags list contains only valid entries (e.g., "$(inherited)" and any real
flags); locate the OTHER_LDFLAGS arrays in the Debug and Release
XCBuildConfiguration sections and delete the empty string element to clean up
the linker flags.
🧹 Nitpick comments (1)
example/ios/exampleTests/Mock/CMPData+Mock.swift (1)

284-348: Align mock divergences between example and sample files.

TCF2Settings.mock() in this file is missing hideButtonManageSettings (present in sample/ios/sampleTests/Mock/CMPData+Mock.swift line 323), and UsercentricsCustomization.mock() is missing buttonAlignment (present in sample line 361). These are pre-existing gaps, but since both files are being touched in this PR, syncing them would prevent potential test-coverage holes if those fields become non-optional in a future SDK bump.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@example/ios/exampleTests/Mock/CMPData`+Mock.swift around lines 284 - 348,
TCF2Settings.mock() is missing the hideButtonManageSettings field and
UsercentricsCustomization.mock() is missing buttonAlignment; update the two mock
factory methods (TCF2Settings.mock() and UsercentricsCustomization.mock()) to
include these missing parameters with the same default values used in the
corresponding sample mocks so both files stay in sync (add
hideButtonManageSettings to the TCF2Settings.init call and buttonAlignment to
the UsercentricsCustomization.init call, using the same enum/value as the
sample).
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@sample/ios/sample.xcodeproj/project.pbxproj`:
- Around line 11-15: Remove the stale duplicate PBXBuildFile and
PBXFileReference entries and their references in the PBXFrameworksBuildPhase:
delete PBXBuildFile entries with UUIDs 34B3E2DD783AD296B9753613 and
77548F352FCA728ECC0F1955 (the old Pods_sample.framework and
Pods_sampleTests.framework build files) and also remove the orphaned
PBXFileReference entries D5881D94DCC31AD3CAAE15C6 and 17CBE8E177E7C75B9B4ED45E,
then remove those old build-file UUIDs from the sample and sampleTests
PBXFrameworksBuildPhase arrays so only the new build-file UUIDs
(5CBE5C95939F906B44BB6022 / 0447FC5F4FA6C8BE48264989 and
5BBD0ED34153A6C427FF0245 / EB1FFF0FB7E8E4ADD20435FF) remain.

---

Duplicate comments:
In `@sample/ios/sample.xcodeproj/project.pbxproj`:
- Around line 523-526: Remove the spurious blank string entry (" ") from the
OTHER_LDFLAGS array in the project-level XCBuildConfiguration blocks for both
Debug and Release so the flags list contains only valid entries (e.g.,
"$(inherited)" and any real flags); locate the OTHER_LDFLAGS arrays in the Debug
and Release XCBuildConfiguration sections and delete the empty string element to
clean up the linker flags.

---

Nitpick comments:
In `@example/ios/exampleTests/Mock/CMPData`+Mock.swift:
- Around line 284-348: TCF2Settings.mock() is missing the
hideButtonManageSettings field and UsercentricsCustomization.mock() is missing
buttonAlignment; update the two mock factory methods (TCF2Settings.mock() and
UsercentricsCustomization.mock()) to include these missing parameters with the
same default values used in the corresponding sample mocks so both files stay in
sync (add hideButtonManageSettings to the TCF2Settings.init call and
buttonAlignment to the UsercentricsCustomization.init call, using the same
enum/value as the sample).

ℹ️ Review info

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between be3a0cf and 16088f6.

⛔ Files ignored due to path filters (3)
  • legacy-sample/package-lock.json is excluded by !**/package-lock.json
  • package-lock.json is excluded by !**/package-lock.json
  • sample/ios/Podfile.lock is excluded by !**/*.lock
📒 Files selected for processing (8)
  • CHANGELOG.md
  • android/build-legacy.gradle
  • android/build.gradle.kts
  • example/ios/exampleTests/Mock/CMPData+Mock.swift
  • package.json
  • sample/ios/sample.xcodeproj/project.pbxproj
  • sample/ios/sample/Info.plist
  • sample/ios/sampleTests/Mock/CMPData+Mock.swift
🚧 Files skipped from review as they are similar to previous changes (5)
  • android/build.gradle.kts
  • sample/ios/sample/Info.plist
  • package.json
  • CHANGELOG.md
  • android/build-legacy.gradle

Comment on lines 11 to 15
34B3E2DD783AD296B9753613 /* Pods_sample.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D5881D94DCC31AD3CAAE15C6 /* Pods_sample.framework */; };
5BBD0ED34153A6C427FF0245 /* Pods_sampleTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EB1FFF0FB7E8E4ADD20435FF /* Pods_sampleTests.framework */; };
5CBE5C95939F906B44BB6022 /* Pods_sample.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0447FC5F4FA6C8BE48264989 /* Pods_sample.framework */; };
761780ED2CA45674006654EE /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 761780EC2CA45674006654EE /* AppDelegate.swift */; };
77548F352FCA728ECC0F1955 /* Pods_sampleTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 17CBE8E177E7C75B9B4ED45E /* Pods_sampleTests.framework */; };
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Remove stale duplicate framework build file entries — duplicate linking will cause linker errors.

Both old and new PBXBuildFile entries for Pods_sample.framework and Pods_sampleTests.framework are simultaneously active in their targets' PBXFrameworksBuildPhase:

Build phase Entry 1 (old) Entry 2 (new, this PR)
sample Frameworks 34B3E2DD…D5881D94… 5CBE5C95…0447FC5F…
sampleTests Frameworks 77548F35…17CBE8E1… 5BBD0ED3…EB1FFF0F…

Both old and new PBXFileReference entries resolve to the same built product (path = Pods_sample.framework; sourceTree = BUILT_PRODUCTS_DIR). Xcode will attempt to link each framework twice, producing at minimum "duplicate -framework" warnings and potentially duplicate-symbol linker errors at runtime.

The Frameworks PBXGroup (lines 97–98) was already updated to reference only the new UUIDs, so the old PBXFileReference entries (D5881D94DCC31AD3CAAE15C6, 17CBE8E177E7C75B9B4ED45E) are now orphaned from the group. The old PBXBuildFile entries and their PBXFileReference counterparts should be removed, and the old build-file UUIDs should be removed from both PBXFrameworksBuildPhase sections.

🐛 Proposed fix — remove stale entries

In PBXBuildFile section remove the two pre-existing stale entries:

-		34B3E2DD783AD296B9753613 /* Pods_sample.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D5881D94DCC31AD3CAAE15C6 /* Pods_sample.framework */; };
 		5BBD0ED34153A6C427FF0245 /* Pods_sampleTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EB1FFF0FB7E8E4ADD20435FF /* Pods_sampleTests.framework */; };
 		5CBE5C95939F906B44BB6022 /* Pods_sample.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0447FC5F4FA6C8BE48264989 /* Pods_sample.framework */; };
-		77548F352FCA728ECC0F1955 /* Pods_sampleTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 17CBE8E177E7C75B9B4ED45E /* Pods_sampleTests.framework */; };

In PBXFileReference section remove the two orphaned stale file refs:

-		17CBE8E177E7C75B9B4ED45E /* Pods_sampleTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_sampleTests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
-		D5881D94DCC31AD3CAAE15C6 /* Pods_sample.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_sample.framework; sourceTree = BUILT_PRODUCTS_DIR; };

In PBXFrameworksBuildPhase for sample remove the old entry:

 			files = (
-				34B3E2DD783AD296B9753613 /* Pods_sample.framework in Frameworks */,
 				5CBE5C95939F906B44BB6022 /* Pods_sample.framework in Frameworks */,
 			);

In PBXFrameworksBuildPhase for sampleTests remove the old entry:

 			files = (
-				77548F352FCA728ECC0F1955 /* Pods_sampleTests.framework in Frameworks */,
 				5BBD0ED34153A6C427FF0245 /* Pods_sampleTests.framework in Frameworks */,
 			);

Also applies to: 31-31, 37-37, 43-43, 45-45, 63-66, 72-75

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@sample/ios/sample.xcodeproj/project.pbxproj` around lines 11 - 15, Remove the
stale duplicate PBXBuildFile and PBXFileReference entries and their references
in the PBXFrameworksBuildPhase: delete PBXBuildFile entries with UUIDs
34B3E2DD783AD296B9753613 and 77548F352FCA728ECC0F1955 (the old
Pods_sample.framework and Pods_sampleTests.framework build files) and also
remove the orphaned PBXFileReference entries D5881D94DCC31AD3CAAE15C6 and
17CBE8E177E7C75B9B4ED45E, then remove those old build-file UUIDs from the sample
and sampleTests PBXFrameworksBuildPhase arrays so only the new build-file UUIDs
(5CBE5C95939F906B44BB6022 / 0447FC5F4FA6C8BE48264989 and
5BBD0ED34153A6C427FF0245 / EB1FFF0FB7E8E4ADD20435FF) remain.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

♻️ Duplicate comments (4)
package.json (1)

3-10: Podspec / native version sync — already flagged.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@package.json` around lines 3 - 10, The package.json shows mismatched/native
version fields (e.g., "version": "2.25.0" vs "iosPackageVersion": "2.25.0");
ensure the native iOS podspec/native package version is kept in sync with
package.json by updating the iosPackageVersion value to match the "version"
field and also update the iOS podspec/native manifest accordingly (check the
podspec's s.version or native version constant) so all version identifiers
(version, iosPackageVersion, podspec s.version) are identical.
sample/ios/sample/Info.plist (1)

36-37: RCTNewArchEnabled = false — already flagged.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@sample/ios/sample/Info.plist` around lines 36 - 37, Remove the duplicate
RCTNewArchEnabled entry and make the setting consistent with the project policy:
locate the <key>RCTNewArchEnabled</key> entry in Info.plist and either delete
the duplicated key or set its value to the authoritative boolean (e.g., <true/>
if the new architecture should be enabled) so there is only one definitive
RCTNewArchEnabled entry.
sample/ios/sample.xcodeproj/project.pbxproj (2)

523-526: OTHER_LDFLAGS blank string entry — already flagged.

Project-level Debug and Release configurations both carry " " (a blank string) as a second OTHER_LDFLAGS element.

Also applies to: 612-615

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@sample/ios/sample.xcodeproj/project.pbxproj` around lines 523 - 526, The
project-level build setting OTHER_LDFLAGS contains an extraneous blank string
entry (" ") in the Debug and Release configuration arrays; remove the blank
string so OTHER_LDFLAGS only contains "$(inherited)" and any real linker flags.
Edit the project.pbxproj entries where OTHER_LDFLAGS is defined for the project
configurations (the blocks showing OTHER_LDFLAGS = ( "$(inherited)", " ", );)
and delete the " " element (and any duplicate blank entries) so the array
becomes just the inherited entry and real flags.

11-15: Stale duplicate framework build file entries — already flagged.

Both old and new PBXBuildFile / PBXFileReference entries for Pods_sample.framework and Pods_sampleTests.framework still coexist, and both UUIDs remain listed in both PBXFrameworksBuildPhase arrays, causing duplicate linking.

Also applies to: 63-66, 72-75

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@sample/ios/sample.xcodeproj/project.pbxproj` around lines 11 - 15, Duplicate
PBXBuildFile/PBXFileReference entries for Pods_sample.framework and
Pods_sampleTests.framework are present and both UUIDs are referenced in
PBXFrameworksBuildPhase, causing duplicate linking; locate the duplicate
PBXBuildFile records (e.g., 34B3E2DD783AD296B9753613 / fileRef
D5881D94DCC31AD3CAAE15C6 and 5CBE5C95939F906B44BB6022 / fileRef
0447FC5F4FA6C8BE48264989 for Pods_sample.framework, and 5BBD0ED34153A6C427FF0245
/ fileRef EB1FFF0FB7E8E4ADD20435FF and 77548F352FCA728ECC0F1955 / fileRef
17CBE8E177E7C75B9B4ED45E for Pods_sampleTests.framework), remove the
stale/incorrect PBXBuildFile and corresponding PBXFileReference entries and
delete the extra UUIDs from the PBXFrameworksBuildPhase arrays so each framework
has exactly one PBXBuildFile and one PBXFileReference referenced in the build
phase.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Duplicate comments:
In `@package.json`:
- Around line 3-10: The package.json shows mismatched/native version fields
(e.g., "version": "2.25.0" vs "iosPackageVersion": "2.25.0"); ensure the native
iOS podspec/native package version is kept in sync with package.json by updating
the iosPackageVersion value to match the "version" field and also update the iOS
podspec/native manifest accordingly (check the podspec's s.version or native
version constant) so all version identifiers (version, iosPackageVersion,
podspec s.version) are identical.

In `@sample/ios/sample.xcodeproj/project.pbxproj`:
- Around line 523-526: The project-level build setting OTHER_LDFLAGS contains an
extraneous blank string entry (" ") in the Debug and Release configuration
arrays; remove the blank string so OTHER_LDFLAGS only contains "$(inherited)"
and any real linker flags. Edit the project.pbxproj entries where OTHER_LDFLAGS
is defined for the project configurations (the blocks showing OTHER_LDFLAGS = (
"$(inherited)", " ", );) and delete the " " element (and any duplicate blank
entries) so the array becomes just the inherited entry and real flags.
- Around line 11-15: Duplicate PBXBuildFile/PBXFileReference entries for
Pods_sample.framework and Pods_sampleTests.framework are present and both UUIDs
are referenced in PBXFrameworksBuildPhase, causing duplicate linking; locate the
duplicate PBXBuildFile records (e.g., 34B3E2DD783AD296B9753613 / fileRef
D5881D94DCC31AD3CAAE15C6 and 5CBE5C95939F906B44BB6022 / fileRef
0447FC5F4FA6C8BE48264989 for Pods_sample.framework, and 5BBD0ED34153A6C427FF0245
/ fileRef EB1FFF0FB7E8E4ADD20435FF and 77548F352FCA728ECC0F1955 / fileRef
17CBE8E177E7C75B9B4ED45E for Pods_sampleTests.framework), remove the
stale/incorrect PBXBuildFile and corresponding PBXFileReference entries and
delete the extra UUIDs from the PBXFrameworksBuildPhase arrays so each framework
has exactly one PBXBuildFile and one PBXFileReference referenced in the build
phase.

In `@sample/ios/sample/Info.plist`:
- Around line 36-37: Remove the duplicate RCTNewArchEnabled entry and make the
setting consistent with the project policy: locate the
<key>RCTNewArchEnabled</key> entry in Info.plist and either delete the
duplicated key or set its value to the authoritative boolean (e.g., <true/> if
the new architecture should be enabled) so there is only one definitive
RCTNewArchEnabled entry.

ℹ️ Review info

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 16088f6 and 068cb64.

⛔ Files ignored due to path filters (3)
  • legacy-sample/package-lock.json is excluded by !**/package-lock.json
  • package-lock.json is excluded by !**/package-lock.json
  • sample/ios/Podfile.lock is excluded by !**/*.lock
📒 Files selected for processing (8)
  • CHANGELOG.md
  • android/build-legacy.gradle
  • android/build.gradle.kts
  • example/ios/exampleTests/Mock/CMPData+Mock.swift
  • package.json
  • sample/ios/sample.xcodeproj/project.pbxproj
  • sample/ios/sample/Info.plist
  • sample/ios/sampleTests/Mock/CMPData+Mock.swift
🚧 Files skipped from review as they are similar to previous changes (3)
  • example/ios/exampleTests/Mock/CMPData+Mock.swift
  • sample/ios/sampleTests/Mock/CMPData+Mock.swift
  • android/build-legacy.gradle

@uc-brunosilva uc-brunosilva merged commit da54230 into master Feb 23, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XXL This PR changes 1000+ lines, ignoring generated files

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants