Conversation
Review Summary by QodoRelease version 2.25.0 with TCF Legitimate Interest support
WalkthroughsDescription• 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 Diagramflowchart 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"]
File Changes1. android/build.gradle.kts
|
Code Review by Qodo
1. Duplicate Pods_sample link
|
|
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 · |
📝 WalkthroughWalkthroughBumps package and Android SDK versions to 2.25.0, adds a CHANGELOG entry describing TCF vendor disclosure fields ( Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related PRs
Suggested labels
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches
🧪 Generate unit tests (beta)
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. Comment |
Sequence DiagramShows 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>)
Generated by CodeAnt AI |
|
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.
|
Nitpicks 🔍
|
| 34B3E2DD783AD296B9753613 /* Pods_sample.framework in Frameworks */, | ||
| 5CBE5C95939F906B44BB6022 /* Pods_sample.framework in Frameworks */, |
There was a problem hiding this comment.
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
| 77548F352FCA728ECC0F1955 /* Pods_sampleTests.framework in Frameworks */, | ||
| 5BBD0ED34153A6C427FF0245 /* Pods_sampleTests.framework in Frameworks */, |
There was a problem hiding this comment.
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 */; }; |
There was a problem hiding this comment.
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.| 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 finished reviewing your PR. |
| OTHER_LDFLAGS = ( | ||
| "$(inherited)", | ||
| " ", | ||
| ); |
There was a problem hiding this comment.
[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++",
);
| <key>RCTNewArchEnabled</key> | ||
| <false/> |
There was a problem hiding this comment.
[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/>| "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", |
There was a problem hiding this comment.
[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.
|
Reviewed up to commit:be3a0cf5ccf5dea46f8f801b67bd607de5cf9fac Additional Suggestionsample/ios/sample.xcodeproj/project.pbxproj, line:498-499Header 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.Few more points:
|
There was a problem hiding this comment.
> [!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 | 🟡 MinorDuplicate framework entries in
PBXFrameworksBuildPhasefor both targets.After this PR, each
Frameworksbuild phase now contains two entries for the same framework:
sampletarget (lines 64–65):34B3E2DD...(fileRefD5881D94...) and5CBE5C95...(fileRef0447FC5F...) both resolve toPods_sample.frameworkatBUILT_PRODUCTS_DIR.sampleTeststarget (lines 73–74):77548F35...(fileRef17CBE8E1...) and5BBD0ED3...(fileRefEB1FFF0F...) both resolve toPods_sampleTests.frameworkatBUILT_PRODUCTS_DIR.The new file-reference UUIDs were correctly added to the
Frameworksgroup (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 installartifact. The oldPBXBuildFileentries (34B3E2DD...and77548F35...) and their correspondingPBXFileReferenceentries (D5881D94...and17CBE8E1...) 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
⛔ Files ignored due to path filters (3)
legacy-sample/package-lock.jsonis excluded by!**/package-lock.jsonpackage-lock.jsonis excluded by!**/package-lock.jsonsample/ios/Podfile.lockis excluded by!**/*.lock
📒 Files selected for processing (6)
CHANGELOG.mdandroid/build-legacy.gradleandroid/build.gradle.ktspackage.jsonsample/ios/sample.xcodeproj/project.pbxprojsample/ios/sample/Info.plist
be3a0cf to
16088f6
Compare
There was a problem hiding this comment.
Actionable comments posted: 1
♻️ Duplicate comments (1)
sample/ios/sample.xcodeproj/project.pbxproj (1)
523-526:⚠️ Potential issue | 🟡 MinorUnresolved: blank string in
OTHER_LDFLAGSpersists 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)XCBuildConfigurationblocks, 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 betweenexampleandsamplefiles.
TCF2Settings.mock()in this file is missinghideButtonManageSettings(present insample/ios/sampleTests/Mock/CMPData+Mock.swiftline 323), andUsercentricsCustomization.mock()is missingbuttonAlignment(present insampleline 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
⛔ Files ignored due to path filters (3)
legacy-sample/package-lock.jsonis excluded by!**/package-lock.jsonpackage-lock.jsonis excluded by!**/package-lock.jsonsample/ios/Podfile.lockis excluded by!**/*.lock
📒 Files selected for processing (8)
CHANGELOG.mdandroid/build-legacy.gradleandroid/build.gradle.ktsexample/ios/exampleTests/Mock/CMPData+Mock.swiftpackage.jsonsample/ios/sample.xcodeproj/project.pbxprojsample/ios/sample/Info.plistsample/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
| 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 */; }; |
There was a problem hiding this comment.
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.
16088f6 to
068cb64
Compare
There was a problem hiding this comment.
♻️ 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_LDFLAGSblank string entry — already flagged.Project-level Debug and Release configurations both carry
" "(a blank string) as a secondOTHER_LDFLAGSelement.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/PBXFileReferenceentries forPods_sample.frameworkandPods_sampleTests.frameworkstill coexist, and both UUIDs remain listed in bothPBXFrameworksBuildPhasearrays, 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
⛔ Files ignored due to path filters (3)
legacy-sample/package-lock.jsonis excluded by!**/package-lock.jsonpackage-lock.jsonis excluded by!**/package-lock.jsonsample/ios/Podfile.lockis excluded by!**/*.lock
📒 Files selected for processing (8)
CHANGELOG.mdandroid/build-legacy.gradleandroid/build.gradle.ktsexample/ios/exampleTests/Mock/CMPData+Mock.swiftpackage.jsonsample/ios/sample.xcodeproj/project.pbxprojsample/ios/sample/Info.plistsample/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
CodeAnt-AI Description
Release 2.25.0: add TCF Legitimate Interest parameter and compatibility fixes
What Changed
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:
This lets you have a chat with CodeAnt AI about your pull request, making it easier to understand and improve your code.
Example
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:
This helps CodeAnt AI learn and adapt to your team's coding style and standards.
Example
Retrigger review
Ask CodeAnt AI to review the PR again, by typing:
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
Chores