Skip to content

Fix iOS deployment targets for CocoaPods resource bundles - #58687

Open
Marve10s wants to merge 1 commit into
react:mainfrom
Marve10s:fix/resource-bundle-deployment-targets
Open

Marve10s wants to merge 1 commit into
react:mainfrom
Marve10s:fix/resource-bundle-deployment-targets

Conversation

@Marve10s

Copy link
Copy Markdown

Summary:

CocoaPods resource bundles can retain deployment targets such as iOS 9.0 even after React Native raises their library target to iOS 15.1. Xcode 27 rejects those bundle targets, blocking the build described in #58555.

updateOSDeploymentTarget only visits each pod's native target. Include its resource bundle targets in the same traversal so every bundle receives React Native's minimum deployment target while preserving higher existing values.

Fixes #58555.

Changelog:

[IOS] [FIXED] - Apply React Native's minimum iOS deployment target to CocoaPods resource bundles.

Test Plan:

  • ruby packages/react-native/scripts/cocoapods/__tests__/utils-test.rb --name test_updateOSDeploymentTarget_updatesNativeAndResourceBundleTargets: passes with 1 test and 3 assertions. Before the fix, it fails because bundle targets remain at 9.0 and 12.4. Covers multiple bundles, Debug and Release configurations, missing deployment targets, and preservation of higher values.
  • ruby packages/react-native/scripts/cocoapods/__tests__/utils-test.rb: 67 tests, 170 assertions, 2 failures. Untouched main at ba1ede621cf5fc63b81fc3e2645f3014c0fe0c03 has the same failures in test_SetGCCPreprocessorDefinitionForHermes_itSetsThePreprocessorForDebug and test_updateSearchPaths_whenUseFrameworks_addsSearchPaths.
  • A headless check using real Xcodeproj targets reproduces the skipped bundles with the published React Native 0.87.1 helper. With this fix, all expected deployment settings persist after saving and reopening the project. This exercises the helper directly, without running pod install or a full Xcode build.
  • git diff --check: passes.

A full Xcode 27 build was not run.

@meta-cla

meta-cla Bot commented Sep 25, 2026

Copy link
Copy Markdown

Hi @Marve10s!

Thank you for your pull request and welcome to our community.

Action Required

In order to merge any pull request (code, docs, etc.), we require contributors to sign our Contributor License Agreement, and we don't seem to have one on file for you.

Process

In order for us to review and merge your suggested changes, please sign at https://code.facebook.com/cla. If you are contributing on behalf of someone else (eg your employer), the individual CLA may not be sufficient and your employer may need to sign the corporate CLA.

Once the CLA is signed, our tooling will perform checks and validations. Afterwards, the pull request will be tagged with CLA signed. The tagging process may take up to 1 hour after signing. Please give it that time before contacting us about it.

If you have received this in error or have any questions, please contact us at cla@meta.com. Thanks!

@meta-cla

meta-cla Bot commented Sep 25, 2026

Copy link
Copy Markdown

Thank you for signing our Contributor License Agreement. We can now accept your code for this (and any) Meta Open Source project. Thanks!

@meta-cla meta-cla Bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Sep 25, 2026
@meta-cla

meta-cla Bot commented Sep 25, 2026

Copy link
Copy Markdown

Thank you for signing our Contributor License Agreement. We can now accept your code for this (and any) Meta Open Source project. Thanks!

@facebook-github-tools facebook-github-tools Bot added the Shared with Meta Applied via automation to indicate that an Issue or Pull Request has been shared with the team. label Sep 25, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. Shared with Meta Applied via automation to indicate that an Issue or Pull Request has been shared with the team.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

iOS: updateOSDeploymentTarget skips resource-bundle targets, so Xcode 27 fails the build with "deployment target ... supported range is 15.0"

1 participant