Repository navigation
iOS: updateOSDeploymentTarget skips resource-bundle targets, so Xcode 27 fails the build with "deployment target ... supported range is 15.0" #58555
Description
Description
Xcode 27 (27A266a, iOS 27.0 SDK) turns "deployment target below the supported range" from a warning into a hard build error, and the supported range now starts at iOS 15.0. A React Native app fails to build because several CocoaPods resource-bundle targets still carry the deployment target declared in their podspec s.platform (9.0 / 12.4 / 13.4 / 14.0).
react_native_post_install already lifts pod targets to min_ios_version_supported via ReactNativePodsUtils.updateOSDeploymentTarget, but that method only iterates target_installation_result.native_target:
react-native/packages/react-native/scripts/cocoapods/utils.rb
Lines 435 to 445 in a17fbb4
| def self.updateOSDeploymentTarget(installer) | |
| installer.target_installation_results.pod_target_installation_results | |
| .each do |pod_name, target_installation_result| | |
| target_installation_result.native_target.build_configurations.each do |config| | |
| old_iphone_deploy_target = config.build_settings["IPHONEOS_DEPLOYMENT_TARGET"] ? | |
| config.build_settings["IPHONEOS_DEPLOYMENT_TARGET"] : | |
| Helpers::Constants.min_ios_version_supported | |
| config.build_settings["IPHONEOS_DEPLOYMENT_TARGET"] = [Helpers::Constants.min_ios_version_supported.to_f, old_iphone_deploy_target.to_f].max.to_s | |
| end | |
| end | |
| end |
Each pod's resource_bundle_targets (PrivacyInfo bundles, asset bundles) are never visited, so they keep the podspec value and Xcode 27 rejects them. The library targets of the very same pods build fine because they were floored to 15.1; only their resource bundles fail. The method is identical on main, 0.87.1 and 0.83.10.
Fixing this per-package is not viable: the newest releases of react-native-device-info (15.0.2), react-native-image-picker (8.2.1), react-native-svg (15.15.5) and RiveRuntime (6.23.1) still declare platform minimums below 15, and a resource bundle's deployment target is assigned by CocoaPods, not by anything the app controls. Since React Native already owns the deployment-target floor for library targets, the floor should cover resource-bundle targets too.
Proposed fix
turn_off_resource_bundle_react_core in the same file already iterates resource_bundle_targets (
| target_installation_result.resource_bundle_targets.each do |resource_bundle_target| |
def self.updateOSDeploymentTarget(installer)
min_version = Helpers::Constants.min_ios_version_supported
installer.target_installation_results.pod_target_installation_results
.each do |pod_name, target_installation_result|
targets = [target_installation_result.native_target] + target_installation_result.resource_bundle_targets
targets.each do |target|
target.build_configurations.each do |config|
old_iphone_deploy_target = config.build_settings["IPHONEOS_DEPLOYMENT_TARGET"] ?
config.build_settings["IPHONEOS_DEPLOYMENT_TARGET"] :
min_version
config.build_settings["IPHONEOS_DEPLOYMENT_TARGET"] = [min_version.to_f, old_iphone_deploy_target.to_f].max.to_s
end
end
end
endHappy to open a PR with this change if maintainers prefer.
Workaround
In the app Podfile post_install, after react_native_post_install:
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
if config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'].to_f < min_ios_version_supported.to_f
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = min_ios_version_supported
end
end
endWith this in place all 260 IPHONEOS_DEPLOYMENT_TARGET entries in Pods.xcodeproj read 15.1 and the build succeeds on Xcode 27.
Steps to reproduce
npx @react-native-community/cli init Repro --version 0.83.1(also reproduces with 0.87.1).- Add any dependency whose podspec declares an old platform and ships a
PrivacyInfo.xcprivacyresource bundle, e.g.react-native-device-info@15.0.2(s.platforms = { :ios => "9.0" }). cd ios && RCT_NEW_ARCH_ENABLED=1 pod install.grep "IPHONEOS_DEPLOYMENT_TARGET = " Pods/Pods.xcodeproj/project.pbxproj | sort | uniq -cshows the library target at 15.1 andRNDeviceInfo-RNDeviceInfoPrivacyInfoat 9.0.- Build with Xcode 27 for any iOS 27 destination (simulator or device). The build fails at the project validation step before compiling anything.
React Native Version
0.83.1 (bug present on main, 0.87.1 and 0.83.10)
Affected Platforms
Build - MacOS, Runtime - iOS
Output of npx @react-native-community/cli info
System:
OS: macOS 27.0
CPU: Apple Silicon
Binaries:
Node: 22.x
pnpm: 10.28.1
CocoaPods: 1.17.0
IDEs:
Xcode:
version: 27.0/27A266a
path: /usr/bin/xcodebuild
Languages:
Ruby:
version: 4.0.6
path: /opt/homebrew/bin/ruby
iOS:
hermesEnabled: true
newArchEnabled: true
Stacktrace or Logs
Pods.xcodeproj: error: The iOS deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 9.0, but the range of supported deployment target versions is 15.0 to 27.0.x. (in target 'RNDeviceInfo-RNDeviceInfoPrivacyInfo' from project 'Pods')
Pods.xcodeproj: error: The iOS deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 9.0, but the range of supported deployment target versions is 15.0 to 27.0.x. (in target 'react-native-image-picker-RNImagePickerPrivacyInfo' from project 'Pods')
Pods.xcodeproj: error: The iOS deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 9.0, but the range of supported deployment target versions is 15.0 to 27.0.x. (in target 'react-native-view-shot-RNViewShotPrivacyInfo' from project 'Pods')
Pods.xcodeproj: error: The iOS deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 12.4, but the range of supported deployment target versions is 15.0 to 27.0.x. (in target 'RNPermissions-RNPermissionsPrivacyInfo' from project 'Pods')
Pods.xcodeproj: error: The iOS deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 12.4, but the range of supported deployment target versions is 15.0 to 27.0.x. (in target 'RNSVG-RNSVGFilters' from project 'Pods')
Pods.xcodeproj: error: The iOS deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 13.4, but the range of supported deployment target versions is 15.0 to 27.0.x. (in target 'RNCAsyncStorage-RNCAsyncStorage_resources' from project 'Pods')
Pods.xcodeproj: error: The iOS deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 14.0, but the range of supported deployment target versions is 15.0 to 27.0.x. (in target 'RiveRuntime-runtime_ios_privacy' from project 'Pods')
MANDATORY Reproducer
The defect is in packages/react-native/scripts/cocoapods/utils.rb itself (permalink above); the steps above reproduce it on a fresh cli init app with one dependency added and no other changes. I can push a repro repository if the steps are not sufficient.
Screenshots and Videos
No response
Activity
react-native-bot commentedon Sep 16, 2026
Warning
Missing reproducer: We could not detect a reproducible example in your issue report. Reproducers are mandatory and we can accept only one of those as a valid reproducer:
You can read more about about it on our website: How to report a bug.
alex-strae commentedon Sep 16, 2026
I used this yesterday. Cant say whether it worked though, yesterday is a bit blurry. And it's probably not an elegant way to do it. Give it a try if you will:
post_install do |installer|
react_native_post_install(
installer,
config[:reactNativePath],
:mac_catalyst_enabled => false,
# :ccache_enabled => true
)
// THIS PART
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '15.0'
end
end
// END
end
Seems it is the same solution although yours check if it's needed in the first place, for each package.
Did you try launching your app on iOS 27 on an xcode 27 simulator yet?
birdofpreyru commentedon Sep 17, 2026
I bumped into this problem as well, and as a temporary workaround I was able to go through each problematic pod in Xcod, change their deployment targets to 15, and thus pass the build.
However (not sure, because of this, or some unrelated problem), the result of the build crashes during launch on iOS 27, while it launches fine on iOS 26 (tested both in Simulator, and on real devices).
I see a bunch of such messages in the console

SYoder1 commentedon Sep 17, 2026
To fix the crash, check out #58545
gengyue2468 commentedon Sep 22, 2026
We are seeing the exact same issue in a project currently using Expo SDK 54:
The generated Podfile correctly sets the iOS deployment target to 15.1, and regular pod targets are raised to React Native's minimum deployment target. However, the build still fails because resource bundle targets retain the deployment targets declared in their podspecs, including 8.0, 9.0, 12.4, and 13.4.
For now, the least invasive workaround for us seems to be pinning Xcode Cloud to Xcode 26.x until an upstream fix is available and we can upgrade to a React Native version that includes it.
Has anyone found a better workaround that does not require patching the generated Podfile or individual pods?
Fix iOS deployment targets for CocoaPods resource bundles (react#58687)