Skip to content

Release: 2.27.0#216

Closed
uc-brunosilva wants to merge 2 commits into
masterfrom
release/2.27.0
Closed

Release: 2.27.0#216
uc-brunosilva wants to merge 2 commits into
masterfrom
release/2.27.0

Conversation

@uc-brunosilva

Copy link
Copy Markdown
Collaborator

No description provided.

@codeant-ai

codeant-ai Bot commented Jun 2, 2026

Copy link
Copy Markdown

Skipping CodeAnt AI review — this PR is a back-merge between long-lived branches (release/2.27.0master). The diff here has already been reviewed when the underlying commits landed on the source branch, so re-running analysis would produce duplicate findings on already-reviewed code.

If you want to analyze this anyway (e.g. you resolved conflicts with new logic), comment @codeant-ai : review and CodeAnt will start a review.

@coderabbitai

coderabbitai Bot commented Jun 2, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@uc-brunosilva, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 46 minutes and 11 seconds. Learn how PR review limits work.

Your organization has run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 03b8f0ae-2a5d-4557-b74e-0d4e1ee1c5ce

📥 Commits

Reviewing files that changed from the base of the PR and between ea9cf47 and 39e5d99.

⛔ Files ignored due to path filters (3)
  • package-lock.json is excluded by !**/package-lock.json
  • sample/ios/Podfile.lock is excluded by !**/*.lock
  • sample/package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (8)
  • CHANGELOG.md
  • android/build-legacy.gradle
  • android/build.gradle.kts
  • android/src/androidTest/java/com/usercentrics/reactnative/mock/GetCMPDataMock.kt
  • android/src/main/java/com/usercentrics/reactnative/extensions/UsercentricsCMPDataExtensions.kt
  • ios/Extensions/UsercentricsCMPData+Dict.swift
  • package.json
  • src/models/TCF2Settings.tsx
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch release/2.27.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.

@qodo-code-review

Copy link
Copy Markdown

Review Summary by Qodo

Release 2.27.0 with mandatory label support

✨ Enhancement

Grey Divider

Walkthroughs

Description
• Release version 2.27.0 with mandatory label feature
• Added mandatoryLabel field to TCF2Settings across platforms
• Implemented mandatory label support in Android and iOS
• Updated version numbers in build and package configs
• Added comprehensive changelog documenting features and fixes
Diagram
flowchart LR
  A["Version Update<br/>2.26.3 → 2.27.0"] --> B["Add mandatoryLabel<br/>to TCF2Settings"]
  B --> C["Android Implementation"]
  B --> D["iOS Implementation"]
  B --> E["React Native Model"]
  C --> F["Update Serialization"]
  D --> G["Update Dictionary"]
  E --> H["Add Constructor Param"]
  F --> I["Release 2.27.0"]
  G --> I
  H --> I

Loading

Grey Divider

File Changes

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

Update Android SDK version to 2.27.0

• Updated usercentricsVersion from 2.26.3 to 2.27.0

android/build.gradle.kts


2. android/src/androidTest/java/com/usercentrics/reactnative/mock/GetCMPDataMock.kt 🧪 Tests +2/-1

Add mandatoryLabel to Android test mock data

• Added mandatoryLabel field with value "Mandatory" to mock data
• Updated test expectations to include the new mandatory label field

android/src/androidTest/java/com/usercentrics/reactnative/mock/GetCMPDataMock.kt


3. android/src/main/java/com/usercentrics/reactnative/extensions/UsercentricsCMPDataExtensions.kt ✨ Enhancement +1/-0

Add mandatoryLabel to Android serialization

• Added mandatoryLabel field to TCF2Settings serialization map
• Ensures mandatory label is properly serialized when converting to WritableMap

android/src/main/java/com/usercentrics/reactnative/extensions/UsercentricsCMPDataExtensions.kt


View more (4)
4. ios/Extensions/UsercentricsCMPData+Dict.swift ✨ Enhancement +1/-0

Add mandatoryLabel to iOS dictionary extension

• Added mandatoryLabel field to TCF2Settings dictionary conversion
• Includes mandatory label in iOS dictionary representation

ios/Extensions/UsercentricsCMPData+Dict.swift


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

Add 2.27.0 release notes and changelog

• Added comprehensive 2.27.0 release notes with features and fixes
• Documented mandatory label and hide vendor toggles implementation
• Listed multiple accessibility improvements for Android
• Included fixes for Android, iOS, TV, and Unity platforms

CHANGELOG.md


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

Update package version to 2.27.0

• Updated version field from 2.26.3 to 2.27.0
• Updated iosPackageVersion field from 2.26.3 to 2.27.0

package.json


7. src/models/TCF2Settings.tsx ✨ Enhancement +3/-0

Add mandatoryLabel property to React Native model

• Added mandatoryLabel: string property to TCF2Settings class
• Added mandatoryLabel parameter to constructor with default value "Mandatory"
• Assigned mandatory label in constructor initialization

src/models/TCF2Settings.tsx


Grey Divider

Qodo Logo

@qodo-code-review

qodo-code-review Bot commented Jun 2, 2026

Copy link
Copy Markdown

Code Review by Qodo

🐞 Bugs (1) 📘 Rule violations (0)

Grey Divider


Remediation recommended

1. Missing mandatoryLabel compat 🐞 Bug ☼ Reliability
Description
TCF2Settings.serialize() reads mandatoryLabel directly, so if an app resolves an older
com.usercentrics.sdk:usercentrics-ui at runtime (dependency conflict/forced downgrade), calling
the generated getMandatoryLabel() can throw NoSuchMethodError and crash CMP data serialization.
This file already uses reflection-based *Compat() accessors for other SDK fields, so
mandatoryLabel should follow the same pattern with a safe fallback.
Code

android/src/main/java/com/usercentrics/reactnative/extensions/UsercentricsCMPDataExtensions.kt[R248-252]

Evidence
The new code path serializes mandatoryLabel via direct property access, while the same file
includes multiple reflection-based compatibility methods (getResurfacePeriodCompat,
getGppSignalingEnabledCompat, etc.) indicating the bridge is designed to survive missing/renamed
SDK APIs at runtime. Because Kotlin property access compiles to a getter call, a missing getter in
an older resolved SDK version would crash with NoSuchMethodError.

android/src/main/java/com/usercentrics/reactnative/extensions/UsercentricsCMPDataExtensions.kt[189-253]
android/src/main/java/com/usercentrics/reactnative/extensions/UsercentricsCMPDataExtensions.kt[262-285]
android/build.gradle.kts[74-77]

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

### Issue description
Android `TCF2Settings.serialize()` adds a new field (`mandatoryLabel`) by directly accessing `mandatoryLabel`. If the app’s dependency graph resolves an older `com.usercentrics.sdk:usercentrics-ui` at runtime (conflict / forced downgrade), the underlying `TCF2Settings` type may not have `getMandatoryLabel()`, leading to a `NoSuchMethodError` crash when `getCMPData()` is serialized.

This module already contains several reflection-based `*Compat()` helpers to tolerate SDK API differences across versions; `mandatoryLabel` should use the same approach.

### Issue Context
- The bridge depends on `com.usercentrics.sdk:usercentrics-ui` and already anticipates runtime API differences (via reflection) for other fields.
- The newly added `mandatoryLabel` is not guarded.

### Fix Focus Areas
- android/src/main/java/com/usercentrics/reactnative/extensions/UsercentricsCMPDataExtensions.kt[189-273]

### Suggested change
1. Add a helper like:
  ```kotlin
  private fun TCF2Settings.getMandatoryLabelCompat(): String {
      return runCatching {
          javaClass.getMethod("getMandatoryLabel").invoke(this) as? String
      }.getOrNull() ?: "Mandatory"
  }
  ```
2. Replace the map entry with:
  ```kotlin
  "mandatoryLabel" to getMandatoryLabelCompat(),
  ```
3. (Optional) If there is a known older alternative method name, attempt it before falling back.

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


Grey Divider

Qodo Logo

@pantoaibot

pantoaibot Bot commented Jun 2, 2026

Copy link
Copy Markdown

PR Summary:

Release 2.27.0 — Adds PUR compliance support (mandatory label + hide-vendor-toggles), cross-bridge updates, accessibility fixes, and version/SDK bumps.

  • Changelog updated for 2.27.0 with feature and fix notes (PUR compliance, Unity changes, Android/iOS/TV accessibility fixes).
  • Feature: PUR (Consent Or Pay) support extended — mandatory label and vendor-toggle-hiding behavior added (gated by enableConsentOrPay). Mandatory label exposed across platforms.
  • Model & serialization changes:
    • Added mandatoryLabel to TCF2Settings (TypeScript) with default "Mandatory".
    • Include "mandatoryLabel" in Android serialization (UsercentricsCMPDataExtensions.kt) and iOS dictionary (UsercentricsCMPData+Dict.swift).
    • Test mock updated (GetCMPDataMock) to include mandatoryLabel.
  • Bridge/platform updates:
    • Behavior extended to Flutter, React Native and Unity bridges (changelog).
    • Unity: exposed GDPR legal texts in getCmpData and added changeLanguage() API (changelog).
  • Accessibility & bug fixes (primarily Android; also iOS, TV, Unity):
    • Fixed TalkBack language pronunciation, focus visibility, proper announcement of buttons/accordions/links, focus jumps on expand/collapse, and semantic exposure of consent history.
    • Fixed UI alignment issues and preview-layer blocking; iOS SPM Xcode 26 compatibility; Samsung TV AbortController error.
  • Build/package changes:
    • Bumped package and native module versions to 2.27.0 (package.json, android gradle files).
    • Android gradle.kts: compileSdk/targetSdk updated to 34.
  • Compatibility/impact: No breaking changes expected — new behavior is gated behind enableConsentOrPay and default values preserve existing behavior.

Reviewed by Panto AI

Comment on lines 62 to +125
@@ -121,6 +122,7 @@ export class TCF2Settings {
firstLayerMobileVariant?: FirstLayerMobileVariant,
dataSharedOutsideEUText?: string,
consentOrPay?: TCF2ConsentOrPaySettings,
mandatoryLabel: string = 'Mandatory',

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

[REFACTORING] You added mandatoryLabel: string (line 62) and a constructor parameter default (line 125). Consider making this field optional/nullable (e.g. mandatoryLabel?: string | null) to make the model tolerant to settings coming from older SDK versions that don't provide the field. Also add/update the exported type definitions (lib/index.d.ts) and any code that constructs TCF2Settings in the repo to ensure callers are intentionally relying on the default. If the intent is to always provide a value, add a short inline comment explaining why a non-null contract is safe.

export class TCF2Settings {
    // ...existing fields...
-   mandatoryLabel: string
+   mandatoryLabel?: string | null

    constructor(
        // ...existing params...
-       consentOrPay?: TCF2ConsentOrPaySettings,
-       mandatoryLabel: string = 'Mandatory',
+       consentOrPay?: TCF2ConsentOrPaySettings,
+       mandatoryLabel?: string | null,
    ) {
        // ...existing assignments...
-       this.consentOrPay = consentOrPay
-       this.mandatoryLabel = mandatoryLabel
+       this.consentOrPay = consentOrPay
+       this.mandatoryLabel = mandatoryLabel ?? 'Mandatory'
    }
}

Comment on lines +512 to +513
"selectedATPIds" to listOf(43, 46, 55),
"mandatoryLabel" to "Mandatory",

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

[NITPICK] You added mandatoryLabel to the expectedTCF2Settings test fixture. Ensure all other platform tests / fixtures (iOS sample mocks, shared unit tests) are updated to expect this new key or remain tolerant to its absence. Also consider adding a small unit test that verifies behavior when mandatoryLabel is missing (to prevent regressions when running tests against older SDKs).

// sample/ios/sampleTests/Mock/CMPData+Mock.swift
extension TCF2Settings {
  static func mock() -> TCF2Settings {
    return .init(
      firstLayerTitle: "firstLayerTitle",
      secondLayerTitle: "secondLayerTitle",
      tabsPurposeLabel: "tabsPurposeLabel",
      tabsVendorsLabel: "tabsVendorsLabel",
      labelsFeatures: "labelsFeatures",
      labelsIabVendors: "labelsIabVendors",
      labelsNonIabPurposes: "labelsNonIabPurposes",
      labelsNonIabVendors: "labelsNonIabVendors",
      labelsPurposes: "labelsPurposes",
      vendorFeatures: "vendorFeatures",
      vendorLegitimateInterestPurposes: "vendorLegitimateInterestPurposes",
      vendorPurpose: "vendorPurpose",
      vendorSpecialFeatures: "vendorSpecialFeatures",
      vendorSpecialPurposes: "vendorSpecialPurposes",
      togglesConsentToggleLabel: "togglesConsentToggleLabel",
      togglesLegIntToggleLabel: "togglesLegIntToggleLabel",
      buttonsAcceptAllLabel: "buttonsAcceptAllLabel",
      buttonsDenyAllLabel: "buttonsDenyAllLabel",
      buttonsSaveLabel: "buttonsSaveLabel",
      linksManageSettingsLabel: "linksManageSettingsLabel",
      linksVendorListLinkLabel: "linksVendorListLinkLabel",
      cmpId: 1,
      cmpVersion: 1,
      firstLayerHideToggles: false,
      secondLayerHideToggles: false,
      hideLegitimateInterestToggles: false,
      secondLayerHideButtonDeny: false,
      publisherCountryCode: "DE",
      purposeOneTreatment: false,
      selectedVendorIds: [1, 2],
      gdprApplies: true,
      selectedStacks: [1],
      disabledSpecialFeatures: [],
      firstLayerShowDescriptions: true,
      hideNonIabOnFirstLayer: false,
      resurfacePeriod: 0,
      resurfacePurposeChanged: false,
      resurfaceVendorAdded: false,
      firstLayerDescription: "firstLayerDescription",
      firstLayerAdditionalInfo: "firstLayerAdditionalInfo",
      secondLayerDescription: "secondLayerDescription",
      togglesSpecialFeaturesToggleOn: "On",
      togglesSpecialFeaturesToggleOff: "Off",
      appLayerNoteResurface: "appLayerNoteResurface",
      firstLayerNoteResurface: "firstLayerNoteResurface",
      categoriesOfDataLabel: "categoriesOfDataLabel",
      dataRetentionPeriodLabel: "dataRetentionPeriodLabel",
      legitimateInterestLabel: "legitimateInterestLabel",
      version: "2.2",
      examplesLabel: "examplesLabel",
      showDataSharedOutsideEUText: true,
      vendorIdsOutsideEUList: [1, 2, 3],
      scope: .global,
      changedPurposes: .init(purposes: [1, 2, 3], legIntPurposes: [1, 2, 3]),
      acmV2Enabled: true,
      selectedATPIds: [43, 46, 55],
      firstLayerHideButtonDeny: false,
      firstLayerMobileVariant: .full,
      dataSharedOutsideEUText: "dataSharedOutsideEUText",
      consentOrPay: .init(
        enableConsentOrPay: true,
        showTogglesForVendors: false,
        publisherRestrictions: [:],
        specialFeatures: [:]
      ),
      mandatoryLabel: "Mandatory"
    )
  }
}

// src/__tests__/TCF2Settings.test.ts (new test)
import { TCF2Settings, TCF2Scope, TCF2ChangedPurposes } from '../models/TCF2Settings'

describe('TCF2Settings.mandatoryLabel', () => {
  it('defaults to "Mandatory" when not provided', () => {
    const settings = new TCF2Settings(
      'firstLayerTitle',
      'secondLayerTitle',
      'tabsPurposeLabel',
      'tabsVendorsLabel',
      'labelsFeatures',
      'labelsIabVendors',
      'labelsNonIabPurposes',
      'labelsNonIabVendors',
      'labelsPurposes',
      'vendorFeatures',
      'vendorLegitimateInterestPurposes',
      'vendorPurpose',
      'vendorSpecialFeatures',
      'vendorSpecialPurposes',
      'togglesConsentToggleLabel',
      'togglesLegIntToggleLabel',
      'buttonsAcceptAllLabel',
      'buttonsDenyAllLabel',
      'buttonsSaveLabel',
      'linksManageSettingsLabel',
      'linksVendorListLinkLabel',
      1,
      1,
      false,
      false,
      false,
      false,
      'DE',
      false,
      [1, 2],
      true,
      [1],
      [],
      true,
      false,
      0,
      false,
      false,
      'firstLayerDescription',
      'firstLayerAdditionalInfo',
      'secondLayerDescription',
      'On',
      'Off',
      'appLayerNoteResurface',
      'firstLayerNoteResurface',
      'categoriesOfDataLabel',
      'dataRetentionPeriodLabel',
      'legitimateInterestLabel',
      '2.2',
      'examplesLabel',
      true,
      [1, 2, 3],
      TCF2Scope.global,
      new TCF2ChangedPurposes([1, 2, 3], [1, 2, 3]),
      true,
      [43, 46, 55],
    )

    expect(settings.mandatoryLabel).toBe('Mandatory')
  })
})

Comment thread package.json
Comment on lines +3 to +10
"version": "2.27.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.26.3",
"iosPackageVersion": "2.27.0",

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

[NITPICK] You bumped package version and iosPackageVersion to 2.27.0. Confirm that the prepare/compile step, the react-native-usercentrics.podspec and any release scripts (scripts/generate-codegen-jni.js, prepublish hooks) run successfully with this version. Ensure you publish the matching native artifacts (UsercentricsUI 2.27.0) and update changelog/release notes accordingly.

@pantoaibot

pantoaibot Bot commented Jun 2, 2026

Copy link
Copy Markdown

Reviewed up to commit:39e5d992a0385bef0bd3ccfadf886ce57044645a

Additional Suggestion
Others - Changelog additions look fine. Ensure the wording accurately reflects breaking changes (if any) and that release date/version align with the package.json/podspec changes. - Cross-platform compatibility: you've added a new TCF2 field surfaced to JS/native bridges. Make the native->bridge serialization defensive across Android and iOS (use reflection/runCatching or optional accesses), update or add unit/instrumentation tests on both platforms and the JS side to validate presence/absence of mandatoryLabel, and ensure sample apps/mocks are updated. This prevents runtime crashes when consumers use mixed versions of the native Usercentrics SDK and this bridge package.
// Android bridge (defensive read of optional mandatoryLabel via reflection)
private fun TCF2Settings.getMandatoryLabelCompat(): String? {
    return runCatching {
        javaClass.getMethod("getMandatoryLabel").invoke(this) as? String
    }.getOrNull()
}

private fun TCF2Settings.serialize(): WritableMap {
    return mapOf(
        // ...existing fields...
        "selectedATPIds" to selectedATPIds,
        "consentOrPay" to consentOrPay?.serialize(),
        "mandatoryLabel" to getMandatoryLabelCompat(),
    ).toWritableMap()
}
// iOS bridge (defensive read of optional mandatoryLabel using Key-Value Coding)
extension TCF2Settings {
    fileprivate var mandatoryLabelCompat: String? {
        // Using value(forKey:) to avoid hard dependency on the property at compile time
        return try? self.value(forKey: "mandatoryLabel") as? String ?? nil
    }

    func toDictionary() -> NSDictionary {
        return [
            // ...existing fields...
            "selectedATPIds": self.selectedATPIds,
            "resurfacePeriod": self.resurfacePeriod,
            "consentOrPay": self.consentOrPay?.toDictionary() as Any,
            "mandatoryLabel": self.mandatoryLabelCompat as Any,
        ]
    }
}
// JS model: make mandatoryLabel optional and default it in the constructor
export class TCF2Settings {
  // ...existing fields...
  mandatoryLabel?: string;

  constructor(
    // ...existing params...
    consentOrPay?: TCF2ConsentOrPaySettings,
    mandatoryLabel?: string,
  ) {
    // ...existing assignments...
    this.consentOrPay = consentOrPay;
    this.mandatoryLabel = mandatoryLabel ?? 'Mandatory';
  }
}

// Example Jest assertion on the JS side
expect(cmpData.settings.tcf2.mandatoryLabel ?? 'Mandatory').toBe('Mandatory');
// Sample app test mock (iOS) – ensure mandatoryLabel is provided when available
extension TCF2Settings {
  static func mock() -> TCF2Settings {
    let settings = TCF2Settings(
      // existing arguments...
    )
    settings.setValue("Mandatory", forKey: "mandatoryLabel")
    return settings
  }
}
// Android test mock – set mandatoryLabel when the property exists
val fakeTCF2Settings = TCF2Settings(
    // existing args...
).apply {
    runCatching {
        javaClass.getMethod("setMandatoryLabel", String::class.java)
            .invoke(this, "Mandatory")
    }
}

Reviewed by Panto AI

@qodo-code-review

Copy link
Copy Markdown

CI Feedback 🧐

A test triggered by this PR failed. Here is an AI-generated analysis of the failure:

Action: test-ios

Failed stage: Run tests [❌]

Failed test name: ""

Failure summary:

The action failed because the iOS test target sampleTests did not compile, which caused xcodebuild
to fail with exit code 65 and cancel testing.
- Swift compile error in
sample/ios/sampleTests/Mock/CMPData+Mock.swift:290:17: missing arguments for parameters
consentOrPay, mandatoryLabel in a .init(...) call.
- As a result, the build step SwiftCompile for
CMPData+Mock.swift (and other sampleTests Swift files) failed, leading to Testing cancelled because
the build failed. and ** TEST FAILED **.

Relevant error logs:
1:  ##[group]Runner Image Provisioner
2:  Hosted Compute Agent
...

861:  Installing React-RCTText (0.81.4)
862:  Installing React-RCTVibration (0.81.4)
863:  Installing React-RuntimeApple (0.81.4)
864:  Installing React-RuntimeCore (0.81.4)
865:  Installing React-RuntimeHermes (0.81.4)
866:  Installing React-callinvoker (0.81.4)
867:  Installing React-cxxreact (0.81.4)
868:  Installing React-debug (0.81.4)
869:  Installing React-defaultsnativemodule (0.81.4)
870:  Installing React-domnativemodule (0.81.4)
871:  Installing React-featureflags (0.81.4)
872:  Installing React-featureflagsnativemodule (0.81.4)
873:  Installing React-graphics (0.81.4)
874:  Installing React-hermes (0.81.4)
875:  Installing React-idlecallbacksnativemodule (0.81.4)
876:  Installing React-jserrorhandler (0.81.4)
877:  Installing React-jsi (0.81.4)
...

1126:  ▸ Copying ExecutionContextManager.h
1127:  ▸ Copying ExecutionContext.h
1128:  ▸ Copying ConsoleMessage.h
1129:  ▸ Copying Base64.h
1130:  ▸ Copying React-jsiexecutor-umbrella.h
1131:  ▸ Copying JSINativeModules.h
1132:  ▸ Copying JSIExecutor.h
1133:  ▸ Copying threadsafe.h
1134:  ▸ Copying jsilib.h
1135:  ▸ Copying jsi.h
1136:  ▸ Copying jsi-inl.h
1137:  ▸ Copying instrumentation.h
1138:  ▸ Copying decorator.h
1139:  ▸ Copying React-jsi-umbrella.h
1140:  ▸ Copying JSIDynamic.h
1141:  ▸ Copying React-jserrorhandler-umbrella.h
1142:  ▸ Copying React-idlecallbacksnativemodule-umbrella.h
1143:  ▸ Copying React-hermes-umbrella.h
1144:  ▸ Copying HermesExecutorFactory.h
1145:  ▸ Copying React-graphics-umbrella.h
1146:  ▸ Copying React-featureflagsnativemodule-umbrella.h
1147:  ▸ Copying React-featureflags-umbrella.h
1148:  ▸ Copying React-domnativemodule-umbrella.h
1149:  ▸ Copying React-defaultsnativemodule-umbrella.h
1150:  ▸ Copying React-debug-umbrella.h
1151:  ▸ Copying TraceSection.h
1152:  ▸ Copying SystraceSection.h
1153:  ▸ Copying SharedProxyCxxModule.h
1154:  ▸ Copying RecoverableError.h
1155:  ▸ Copying ReactNativeVersion.h
...

1158:  ▸ Copying RAMBundleRegistry.h
1159:  ▸ Copying NativeToJsBridge.h
1160:  ▸ Copying NativeModule.h
1161:  ▸ Copying MoveWrapper.h
1162:  ▸ Copying ModuleRegistry.h
1163:  ▸ Copying MethodCall.h
1164:  ▸ Copying MessageQueueThread.h
1165:  ▸ Copying JsArgumentHelpers.h
1166:  ▸ Copying JsArgumentHelpers-inl.h
1167:  ▸ Copying JSModulesUnbundle.h
1168:  ▸ Copying JSIndexedRAMBundle.h
1169:  ▸ Copying JSExecutor.h
1170:  ▸ Copying JSBundleType.h
1171:  ▸ Copying JSBigString.h
1172:  ▸ Copying Instance.h
1173:  ▸ Copying ErrorUtils.h
1174:  ▸ Copying CxxNativeModule.h
...

1518:  ▸ Copying RCTI18nUtil.h
1519:  ▸ Copying RCTI18nManager.h
1520:  ▸ Copying RCTHTTPRequestHandler.h
1521:  ▸ Copying RCTGIFImageDecoder.h
1522:  ▸ Copying RCTFrameUpdate.h
1523:  ▸ Copying RCTFrameAnimation.h
1524:  ▸ Copying RCTFont.h
1525:  ▸ Copying RCTFileRequestHandler.h
1526:  ▸ Copying RCTFileReaderModule.h
1527:  ▸ Copying RCTFPSGraph.h
1528:  ▸ Copying RCTExceptionsManager.h
1529:  ▸ Copying RCTEventEmitter.h
1530:  ▸ Copying RCTEventDispatcherProtocol.h
1531:  ▸ Copying RCTEventDispatcher.h
1532:  ▸ Copying RCTEventAnimation.h
1533:  ▸ Copying RCTErrorInfo.h
1534:  ▸ Copying RCTErrorCustomizer.h
1535:  ▸ Copying RCTDynamicTypeRamp.h
...

1686:  ▸ Copying RCTSurfaceTouchHandler+RNSUtility.h
1687:  ▸ Copying RCTImageSource+AccessHiddenMembers.h
1688:  ▸ Copying RCTImageComponentView+RNSScreenStackHeaderConfig.h
1689:  ▸ Copying RCTConvert+RNScreens.h
1690:  ▸ Copying RCTConvert+RNSTabs.h
1691:  ▸ Copying NSString+RNSUtility.h
1692:  ▸ Copying RCTTypedModuleConstants.h
1693:  ▸ Copying RCTTypeSafety-umbrella.h
1694:  ▸ Copying RCTConvertHelpers.h
1695:  ▸ Copying RCTDeprecation.h
1696:  ▸ Copying RCTDeprecation-umbrella.h
1697:  ▸ Copying RCT-Folly-umbrella.h
1698:  ▸ Copying FBLPromisePrivate.h
1699:  ▸ Copying PromisesObjC-umbrella.h
1700:  ▸ Copying FBLPromises.h
1701:  ▸ Copying FBLPromiseError.h
1702:  ▸ Copying FBLPromise.h
...

1728:  ▸ Copying GULNetworkLoggerProtocol.h
1729:  ▸ Copying GULNetworkInfo.h
1730:  ▸ Copying GULNetworkConstants.h
1731:  ▸ Copying GULNetwork.h
1732:  ▸ Copying GULNSData+zlib.h
1733:  ▸ Copying GULMutableDictionary.h
1734:  ▸ Copying GULLoggerLevel.h
1735:  ▸ Copying GULLogger.h
1736:  ▸ Copying GULKeychainUtils.h
1737:  ▸ Copying GULKeychainStorage.h
1738:  ▸ Copying GULApplication.h
1739:  ▸ Copying GULAppEnvironmentUtil.h
1740:  ▸ Copying GULAppDelegateSwizzler.h
1741:  ▸ Copying FirebaseInstallations.h
1742:  ▸ Copying FirebaseInstallations-umbrella.h
1743:  ▸ Copying FIRInstallationsErrors.h
1744:  ▸ Copying FIRInstallationsAuthTokenResult.h
...

1826:  ▸ Compiling SocketRocket-dummy.m
1827:  ▸ Compiling SRWebSocket.m
1828:  ▸ Compiling SRURLUtilities.m
1829:  ▸ Compiling SRSecurityPolicy.m
1830:  ▸ Compiling SRSIMDHelpers.m
1831:  ▸ Compiling SRRunLoopThread.m
1832:  ▸ Compiling SRRandom.m
1833:  ▸ Compiling SRProxyConnect.m
1834:  ▸ Compiling SRPinningSecurityPolicy.m
1835:  ▸ Compiling SRMutex.m
1836:  ▸ Compiling SRLog.m
1837:  ▸ Compiling SRIOConsumerPool.m
1838:  ▸ Compiling SRIOConsumer.m
1839:  ▸ Compiling SRHash.m
1840:  ▸ Compiling SRHTTPConnectMessage.m
1841:  ▸ Compiling SRError.m
1842:  ▸ Compiling SRDelegateController.m
...

1869:  ▸ Compiling RCTDeprecation_vers.c
1870:  ▸ Compiling React-debug-dummy.m
1871:  ▸ Compiling RCTDeprecation-dummy.m
1872:  ▸ Touching oscompat.framework (in target 'React-oscompat' from project 'Pods')
1873:  ▸ Running script 'Create Symlinks to Header Folders'
1874:  ▸ Touching React-Core_privacy.bundle (in target 'React-Core-React-Core_privacy' from project 'Pods')
1875:  ▸ Processing ResourceBundle-RCT-Folly_privacy-RCT-Folly-Info.plist
1876:  ▸ Processing ResourceBundle-FBLPromises_Privacy-PromisesObjC-Info.plist
1877:  ▸ Copying /Users/runner/Library/Developer/Xcode/DerivedData/sample-cxwqelddxzdsolcgdcbbvovmgaly/Build/Products/Debug-iphonesimulator/PromisesObjC/FBLPromises_Privacy.bundle/PrivacyInfo.xcprivacy
1878:  ▸ Touching React_debug.framework (in target 'React-debug' from project 'Pods')
1879:  ▸ Touching RCT-Folly_privacy.bundle (in target 'RCT-Folly-RCT-Folly_privacy' from project 'Pods')
1880:  ▸ Compiling FBLPromises_vers.c
1881:  ▸ Compiling PromisesObjC-dummy.m
1882:  ▸ Compiling FBLPromise.m
1883:  ▸ Compiling FBLPromise+Wrap.m
1884:  ▸ Compiling FBLPromiseError.m
1885:  ▸ Compiling FBLPromise+Validate.m
...

1947:  ▸ Compiling FirebaseCoreInternal-dummy.m
1948:  ▸ Compiling GULSceneDelegateSwizzler.m
1949:  ▸ Compiling GULAppEnvironmentUtil.m
1950:  ▸ Compiling GULAppDelegateSwizzler.m
1951:  ▸ Compiling FirebaseInstallations_vers.c
1952:  ▸ Compiling FirebaseInstallations-dummy.m
1953:  ▸ Compiling FIRInstallationsSingleOperationPromiseCache.m
1954:  ▸ Compiling FIRInstallationsStoredItem.m
1955:  ▸ Compiling FIRInstallationsStoredAuthToken.m
1956:  ▸ Compiling FIRInstallationsStore.m
1957:  ▸ Compiling FIRInstallationsLogger.m
1958:  ▸ Compiling FIRInstallationsItem.m
1959:  ▸ Compiling FIRInstallationsItem+RegisterInstallationAPI.m
1960:  ▸ Compiling FIRInstallationsIIDTokenStore.m
1961:  ▸ Compiling FIRInstallationsIIDStore.m
1962:  ▸ Compiling FIRInstallationsHTTPError.m
1963:  ▸ Compiling FIRInstallationsIDController.m
1964:  ▸ Compiling FIRInstallationsErrorUtil.m
1965:  ▸ Compiling FirebaseCore-dummy.m
...

2342:  ▸ Compiling RCTModalManager.m
2343:  ▸ Compiling RCTModalHostViewManager.m
2344:  ▸ Compiling RCTModalHostViewController.m
2345:  ▸ Compiling RCTModalHostView.m
2346:  ▸ Compiling RCTLayoutAnimationGroup.m
2347:  ▸ Compiling RCTLayoutAnimation.m
2348:  ▸ Compiling RCTLayout.m
2349:  ▸ Compiling RCTKeyCommands.m
2350:  ▸ Compiling RCTJSThread.m
2351:  ▸ Compiling RCTJSStackFrame.m
2352:  ▸ Compiling RCTImageSource.m
2353:  ▸ Compiling RCTI18nUtil.m
2354:  ▸ Compiling RCTFrameUpdate.m
2355:  ▸ Compiling RCTEventEmitter.m
2356:  ▸ Compiling RCTEventDispatcher.m
2357:  ▸ Compiling RCTErrorInfo.m
2358:  ▸ Compiling RCTDisplayLink.m
...

2366:  ▸ Compiling RCTConvert+CoreLocation.m
2367:  ▸ Compiling RCTCallableJSModules.m
2368:  ▸ Compiling RCTBundleManager.m
2369:  ▸ Compiling RCTBridgeModuleDecorator.m
2370:  ▸ Compiling RCTBridgeConstants.m
2371:  ▸ Compiling RCTBorderDrawing.m
2372:  ▸ Compiling RCTAssert.m
2373:  ▸ Compiling RCTActivityIndicatorViewManager.m
2374:  ▸ Compiling RCTActivityIndicatorView.m
2375:  ▸ Running script 'Create Symlinks to Header Folders'
2376:  ▸ Touching React_graphics.framework (in target 'React-graphics' from project 'Pods')
2377:  ▸ Compiling RCTTypedModuleConstants.mm
2378:  ▸ Compiling RCTConvertHelpers.mm
2379:  ▸ Compiling RCTTypeSafety_vers.c
2380:  ▸ Touching ReactCommon.framework (in target 'ReactCommon' from project 'Pods')
2381:  ▸ Processing React-jserrorhandler-Info.plist
2382:  ▸ Compiling StackTraceParser.cpp
2383:  ▸ Compiling JsErrorHandler.cpp
2384:  ▸ Compiling RCTTypeSafety-dummy.m
2385:  ▸ Compiling React_jserrorhandler_vers.c
2386:  ▸ Compiling React-jserrorhandler-dummy.m
2387:  ▸ Touching React.framework (in target 'React-Core' from project 'Pods')
2388:  ▸ Processing React-RCTText-Info.plist
2389:  ▸ Processing React-NativeModulesApple-Info.plist
2390:  ▸ Processing RCTTypeSafety-Info.plist
2391:  ▸ Compiling RCTTurboModuleManager.mm
2392:  ▸ Compiling RCTTurboModule.mm
2393:  ▸ Compiling RCTInteropTurboModule.mm
2394:  ▸ Compiling React_NativeModulesApple_vers.c
2395:  ▸ Running script 'Create Symlinks to Header Folders'
2396:  ▸ Touching RCTText.framework (in target 'React-RCTText' from project 'Pods')
2397:  ▸ Touching React_jserrorhandler.framework (in target 'React-jserrorhandler' from project 'Pods')
2398:  ▸ Touching RCTTypeSafety.framework (in target 'RCTTypeSafety' from project 'Pods')
...

3021:  ⚠️  /Users/runner/Library/Developer/Xcode/DerivedData/sample-cxwqelddxzdsolcgdcbbvovmgaly/Build/Products/Debug-iphonesimulator/main.jsbundle:79:7: the variable "console" was not declared in function "metroRequire"
3022:  console.warn(`Requiring module "${verboseName}" by name is only support...
3023:  ~~~~~^~~~~~~~~~~~~~~
3024:  ⚠️  /Users/runner/Library/Developer/Xcode/DerivedData/sample-cxwqelddxzdsolcgdcbbvovmgaly/Build/Products/Debug-iphonesimulator/main.jsbundle:460:33: the variable "setTimeout" was not declared in function "metroHotUpdateModule"
3025:  reactRefreshTimeout = setTimeout(function () {
3026:  ^~~~~~~
3027:  ⚠️  /Users/runner/Library/Developer/Xcode/DerivedData/sample-cxwqelddxzdsolcgdcbbvovmgaly/Build/Products/Debug-iphonesimulator/main.jsbundle:546:18: the variable "window" was not declared in function "performFullRefresh"
3028:  if (typeof window !== "undefined" && window.location != null && typeof ...
3029:  ^~~~~~~~~~
3030:  ⚠️  /Users/runner/Library/Developer/Xcode/DerivedData/sample-cxwqelddxzdsolcgdcbbvovmgaly/Build/Products/Debug-iphonesimulator/main.jsbundle:2457:20: the variable "Promise" was not declared in function "promiseMethodWrapper"
3031:  return new Promise(function (resolve, reject) {
3032:  ^~~~~~
3033:  ⚠️  /Users/runner/Library/Developer/Xcode/DerivedData/sample-cxwqelddxzdsolcgdcbbvovmgaly/Build/Products/Debug-iphonesimulator/main.jsbundle:2843:23: the variable "DebuggerInternal" was not declared in function "__shouldPauseOnThrow"
3034:  return typeof DebuggerInternal !== 'undefined' && DebuggerInternal.sh...
3035:  ^~~~~~~
3036:  ⚠️  /Users/runner/Library/Developer/Xcode/DerivedData/sample-cxwqelddxzdsolcgdcbbvovmgaly/Build/Products/Debug-iphonesimulator/main.jsbundle:5986:49: the variable "reportError" was not declared in anonymous function " 155#"
3037:  ...alError = "function" === typeof reportError ? reportError : function (erro...
3038:  ^~~~~~~~~~~~~~~~
3039:  ⚠️  /Users/runner/Library/Developer/Xcode/DerivedData/sample-cxwqelddxzdsolcgdcbbvovmgaly/Build/Products/Debug-iphonesimulator/main.jsbundle:6490:105: the variable "MessageChannel" was not declared in function "enqueueTaskImpl"
3040:  ... = !0, "undefined" === typeof MessageChannel && console.error("This browse...
3041:  ^~~~~~~~~~~
...

3181:  eval(code);
3182:  ^~~~~~~~~~~~~~~~~~~~~~
3183:  ⚠️  /Users/runner/Library/Developer/Xcode/DerivedData/sample-cxwqelddxzdsolcgdcbbvovmgaly/Build/Products/Debug-iphonesimulator/main.jsbundle:161516:9: Direct call to eval(), but lexical scope is not supported.
3184:  eval(body);
3185:  ^~~~~~~~~~
3186:  ▸ Running script '[CP] Embed Pods Frameworks'
3187:  ▸ Running script '[CP] Copy Pods Resources'
3188:  ▸ Running script '[CP] Check Pods Manifest.lock'
3189:  ❌  /Users/runner/work/react-native-sdk/react-native-sdk/sample/ios/sampleTests/Mock/CMPData+Mock.swift:290:17: missing arguments for parameters 'consentOrPay', 'mandatoryLabel' in call
3190:  return .init(firstLayerTitle: "firstLayerTitle",
3191:  ^~~~~~~~~~
3192:  ▸ Processing empty-sampleTests.plist
3193:  Run script build phase '[CP-User] [Hermes] Replace Hermes for the right configuration, if needed' will be run during every build because it does not specify any outputs. To address this issue, either add output dependencies to the script phase, or configure it to run in every build by unchecking "Based on dependency analysis" in the script phase. (in target 'hermes-engine' from project 'Pods')
3194:  Run script build phase 'Bundle React Native code and images' will be run during every build because it does not specify any outputs. To address this issue, either add output dependencies to the script phase, or configure it to run in every build by unchecking "Based on dependency analysis" in the script phase. (in target 'sample' from project 'sample')
3195:  Run script build phase 'Create Symlinks to Header Folders' will be run during every build because it does not specify any outputs. To address this issue, either add output dependencies to the script phase, or configure it to run in every build by unchecking "Based on dependency analysis" in the script phase. (in target 'fmt' from project 'Pods')
3196:  Testing failed:
3197:  Skipping duplicate build file in Copy Headers build phase: /Users/runner/work/react-native-sdk/react-native-sdk/sample/node_modules/react-native/ReactCommon/yoga/yoga/enums/Align.h (in target 'Yoga' from project 'Pods')
3198:  Missing arguments for parameters 'consentOrPay', 'mandatoryLabel' in call
3199:  Skipping duplicate build file in Copy Headers build phase: /Users/runner/work/react-native-sdk/react-native-sdk/sample/node_modules/react-native/ReactCommon/yoga/yoga/enums/FlexDirection.h (in target 'Yoga' from project 'Pods')
3200:  Testing cancelled because the build failed.
3201:  Run script build phase 'Create Symlinks to Header Folders' will be run during every build because it does not specify any outputs. To address this issue, either add output dependencies to the script phase, or configure it to run in every build by unchecking "Based on dependency analysis" in the script phase. (in target 'Yoga' from project 'Pods')
3202:  ** TEST FAILED **
3203:  Run script build phase 'Create Symlinks to Header Folders' will be run during every build because it does not specify any outputs. To address this issue, either add output dependencies to the script phase, or configure it to run in every build by unchecking "Based on dependency analysis" in the script phase. (in target 'ReactCommon' from project 'Pods')
...

3220:  Skipping duplicate build file in Copy Headers build phase: /Users/runner/work/react-native-sdk/react-native-sdk/sample/ios/build/generated/ios/react/renderer/components/safeareacontext/States.h (in target 'ReactCodegen' from project 'Pods')
3221:  Skipping duplicate build file in Copy Headers build phase: /Users/runner/work/react-native-sdk/react-native-sdk/sample/ios/build/generated/ios/react/renderer/components/safeareacontext/States.h (in target 'ReactCodegen' from project 'Pods')
3222:  Run script build phase 'Create Symlinks to Header Folders' will be run during every build because it does not specify any outputs. To address this issue, either add output dependencies to the script phase, or configure it to run in every build by unchecking "Based on dependency analysis" in the script phase. (in target 'ReactCodegen' from project 'Pods')
3223:  Run script build phase 'Create Symlinks to Header Folders' will be run during every build because it does not specify any outputs. To address this issue, either add output dependencies to the script phase, or configure it to run in every build by unchecking "Based on dependency analysis" in the script phase. (in target 'React-utils' from project 'Pods')
3224:  Run script build phase 'Create Symlinks to Header Folders' will be run during every build because it does not specify any outputs. To address this issue, either add output dependencies to the script phase, or configure it to run in every build by unchecking "Based on dependency analysis" in the script phase. (in target 'React-runtimescheduler' from project 'Pods')
3225:  Run script build phase 'Create Symlinks to Header Folders' will be run during every build because it does not specify any outputs. To address this issue, either add output dependencies to the script phase, or configure it to run in every build by unchecking "Based on dependency analysis" in the script phase. (in target 'React-runtimeexecutor' from project 'Pods')
3226:  Run script build phase 'Create Symlinks to Header Folders' will be run during every build because it does not specify any outputs. To address this issue, either add output dependencies to the script phase, or configure it to run in every build by unchecking "Based on dependency analysis" in the script phase. (in target 'React-rendererdebug' from project 'Pods')
3227:  Run script build phase 'Create Symlinks to Header Folders' will be run during every build because it does not specify any outputs. To address this issue, either add output dependencies to the script phase, or configure it to run in every build by unchecking "Based on dependency analysis" in the script phase. (in target 'React-renderercss' from project 'Pods')
3228:  Run script build phase 'Create Symlinks to Header Folders' will be run during every build because it does not specify any outputs. To address this issue, either add output dependencies to the script phase, or configure it to run in every build by unchecking "Based on dependency analysis" in the script phase. (in target 'React-rendererconsistency' from project 'Pods')
3229:  Run script build phase 'Create Symlinks to Header Folders' will be run during every build because it does not specify any outputs. To address this issue, either add output dependencies to the script phase, or configure it to run in every build by unchecking "Based on dependency analysis" in the script phase. (in target 'React-performancetimeline' from project 'Pods')
3230:  Run script build phase 'Create Symlinks to Header Folders' will be run during every build because it does not specify any outputs. To address this issue, either add output dependencies to the script phase, or configure it to run in every build by unchecking "Based on dependency analysis" in the script phase. (in target 'React-microtasksnativemodule' from project 'Pods')
3231:  Run script build phase 'Create Symlinks to Header Folders' will be run during every build because it does not specify any outputs. To address this issue, either add output dependencies to the script phase, or configure it to run in every build by unchecking "Based on dependency analysis" in the script phase. (in target 'React-jsitooling' from project 'Pods')
3232:  Run script build phase 'Create Symlinks to Header Folders' will be run during every build because it does not specify any outputs. To address this issue, either add output dependencies to the script phase, or configure it to run in every build by unchecking "Based on dependency analysis" in the script phase. (in target 'React-jsinspectortracing' from project 'Pods')
3233:  Run script build phase 'Create Symlinks to Header Folders' will be run during every build because it does not specify any outputs. To address this issue, either add output dependencies to the script phase, or configure it to run in every build by unchecking "Based on dependency analysis" in the script phase. (in target 'React-jsinspectornetwork' from project 'Pods')
3234:  Run script build phase 'Create Symlinks to Header Folders' will be run during every build because it does not specify any outputs. To address this issue, either add output dependencies to the script phase, or configure it to run in every build by unchecking "Based on dependency analysis" in the script phase. (in target 'React-jsinspectorcdp' from project 'Pods')
3235:  Run script build phase 'Create Symlinks to Header Folders' will be run during every build because it does not specify any outputs. To address this issue, either add output dependencies to the script phase, or configure it to run in every build by unchecking "Based on dependency analysis" in the script phase. (in target 'React-jserrorhandler' from project 'Pods')
3236:  Run script build phase 'Create Symlinks to Header Folders' will be run during every build because it does not specify any outputs. To address this issue, either add output dependencies to the script phase, or configure it to run in every build by unchecking "Based on dependency analysis" in the script phase. (in target 'React-idlecallbacksnativemodule' from project 'Pods')
...

3240:  Run script build phase 'Create Symlinks to Header Folders' will be run during every build because it does not specify any outputs. To address this issue, either add output dependencies to the script phase, or configure it to run in every build by unchecking "Based on dependency analysis" in the script phase. (in target 'React-domnativemodule' from project 'Pods')
3241:  Run script build phase 'Create Symlinks to Header Folders' will be run during every build because it does not specify any outputs. To address this issue, either add output dependencies to the script phase, or configure it to run in every build by unchecking "Based on dependency analysis" in the script phase. (in target 'React-defaultsnativemodule' from project 'Pods')
3242:  Run script build phase 'Create Symlinks to Header Folders' will be run during every build because it does not specify any outputs. To address this issue, either add output dependencies to the script phase, or configure it to run in every build by unchecking "Based on dependency analysis" in the script phase. (in target 'React-debug' from project 'Pods')
3243:  Run script build phase 'Create Symlinks to Header Folders' will be run during every build because it does not specify any outputs. To address this issue, either add output dependencies to the script phase, or configure it to run in every build by unchecking "Based on dependency analysis" in the script phase. (in target 'React-RuntimeHermes' from project 'Pods')
3244:  Run script build phase 'Create Symlinks to Header Folders' will be run during every build because it does not specify any outputs. To address this issue, either add output dependencies to the script phase, or configure it to run in every build by unchecking "Based on dependency analysis" in the script phase. (in target 'React-RuntimeCore' from project 'Pods')
3245:  Run script build phase 'Create Symlinks to Header Folders' will be run during every build because it does not specify any outputs. To address this issue, either add output dependencies to the script phase, or configure it to run in every build by unchecking "Based on dependency analysis" in the script phase. (in target 'React-RuntimeApple' from project 'Pods')
3246:  Run script build phase 'Create Symlinks to Header Folders' will be run during every build because it does not specify any outputs. To address this issue, either add output dependencies to the script phase, or configure it to run in every build by unchecking "Based on dependency analysis" in the script phase. (in target 'React-RCTRuntime' from project 'Pods')
3247:  Run script build phase 'Create Symlinks to Header Folders' will be run during every build because it does not specify any outputs. To address this issue, either add output dependencies to the script phase, or configure it to run in every build by unchecking "Based on dependency analysis" in the script phase. (in target 'React-RCTFBReactNativeSpec' from project 'Pods')
3248:  Run script build phase 'Create Symlinks to Header Folders' will be run during every build because it does not specify any outputs. To address this issue, either add output dependencies to the script phase, or configure it to run in every build by unchecking "Based on dependency analysis" in the script phase. (in target 'React-NativeModulesApple' from project 'Pods')
3249:  Run script build phase 'Create Symlinks to Header Folders' will be run during every build because it does not specify any outputs. To address this issue, either add output dependencies to the script phase, or configure it to run in every build by unchecking "Based on dependency analysis" in the script phase. (in target 'React-Mapbuffer' from project 'Pods')
3250:  Run script build phase 'Create Symlinks to Header Folders' will be run during every build because it does not specify any outputs. To address this issue, either add output dependencies to the script phase, or configure it to run in every build by unchecking "Based on dependency analysis" in the script phase. (in target 'React-ImageManager' from project 'Pods')
3251:  Run script build phase 'Create Symlinks to Header Folders' will be run during every build because it does not specify any outputs. To address this issue, either add output dependencies to the script phase, or configure it to run in every build by unchecking "Based on dependency analysis" in the script phase. (in target 'React-FabricImage' from project 'Pods')
3252:  Run script build phase 'Create Symlinks to Header Folders' will be run during every build because it does not specify any outputs. To address this issue, either add output dependencies to the script phase, or configure it to run in every build by unchecking "Based on dependency analysis" in the script phase. (in target 'React-FabricComponents' from project 'Pods')
3253:  Run script build phase 'Create Symlinks to Header Folders' will be run during every build because it does not specify any outputs. To address this issue, either add output dependencies to the script phase, or configure it to run in every build by unchecking "Based on dependency analysis" in the script phase. (in target 'React-Fabric' from project 'Pods')
3254:  Run script build phase 'Create Symlinks to Header Folders' will be run during every build because it does not specify any outputs. To address this issue, either add output dependencies to the script phase, or configure it to run in every build by unchecking "Based on dependency analysis" in the script phase. (in target 'RCT-Folly' from project 'Pods')
3255:  The following build commands failed:
3256:  SwiftCompile normal arm64 Compiling\ FakeDispatchQueue.swift,\ FakePresentationViewController.swift,\ FakeUsercentricsManager.swift,\ CMPData+Mock.swift,\ TCFData+Mock.swift,\ TCFUserDecisions+Mock.swift,\ UsercentricsIsReady+Mock.swift /Users/runner/work/react-native-sdk/react-native-sdk/sample/ios/sampleTests/Fake/FakeDispatchQueue.swift /Users/runner/work/react-native-sdk/react-native-sdk/sample/ios/sampleTests/Fake/FakePresentationViewController.swift /Users/runner/work/react-native-sdk/react-native-sdk/sample/ios/sampleTests/Fake/FakeUsercentricsManager.swift /Users/runner/work/react-native-sdk/react-native-sdk/sample/ios/sampleTests/Mock/CMPData+Mock.swift /Users/runner/work/react-native-sdk/react-native-sdk/sample/ios/sampleTests/Mock/TCFData+Mock.swift /Users/runner/work/react-native-sdk/react-native-sdk/sample/ios/sampleTests/Mock/TCFUserDecisions+Mock.swift /Users/runner/work/react-native-sdk/react-native-sdk/sample/ios/sampleTests/Mock/UsercentricsIsReady+Mock.swift (in target 'sampleTests' from project 'sample')
3257:  SwiftCompile normal arm64 /Users/runner/work/react-native-sdk/react-native-sdk/sample/ios/sampleTests/Mock/CMPData+Mock.swift (in target 'sampleTests' from project 'sample')
3258:  Testing workspace sample with scheme sample
3259:  (3 failures)
3260:  ##[error]Process completed with exit code 65.
3261:  ##[group]Run actions/upload-artifact@v4

@uc-brunosilva uc-brunosilva deleted the release/2.27.0 branch June 2, 2026 10:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants