- Published on
- 5 min read Beginner
> Fixing "Supported Deployment Target Versions is 15.0 to 27.0" in Xcode 27
Xcode 27 landed at WWDC 2026, you updated, and a project that compiled fine yesterday now refuses to build. Somewhere in the issue navigator you'll find a line like this:
The iOS Simulator deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to xx.x, but the range of supported deployment targets versions is 15.0 to 27.0.x.
The xx.x is whatever your current deployment target happens to be, so the exact number changes from project to project. The part that doesn't change is the range: Xcode 27 only supports deployment targets from 15.0 up to 27.0. Anything below 15.0 is now rejected outright.
What Changed
This is the headline build-system change in Xcode 27. Apple raised the oldest iOS version the toolchain will build for, and the new floor is iOS 15. If your app, or more often one of your dependencies, still lists a deployment target of iOS 12, 13, or 14, the compiler stops with the error above instead of building for an OS Apple no longer supports.
It isn't new behavior either. Each major Xcode release tends to retire the oldest one or two iOS versions, and you get this exact error whenever one of your targets falls below the new line. Nothing actually bypasses the minimum, so the real work is getting every target in your project up to 15.0 or higher.
The Real Fix: Raise the Deployment Target
If the error points at your own app target, the fix is to bump its iOS Deployment Target to 15.0 or newer.
- Select your project in the navigator, then select the target.
- Open Build Settings and search for "iOS Deployment Target" (the underlying key is
IPHONEOS_DEPLOYMENT_TARGET). - Set it to 15.0 or higher.
Do this for every target the project builds, including app extensions, widgets, and test bundles, since each one carries its own deployment target. Once they're all at 15.0 or above, the error clears. The setting itself is documented in Apple's build settings reference.
When a CocoaPods Dependency Is the Culprit
More often than not your app target is already fine and the offending deployment target lives inside a pod you don't control. CocoaPods generates a target per dependency, and if any of them declares an older minimum, you'll see the error even though your own settings look correct.
The standard fix is a post_install hook in your Podfile that walks every pod target and raises its deployment target to a supported value:
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '15.0'
end
end
end
If you already have a post_install block, add the loop inside it rather than declaring a second one. Then reinstall and do a clean build:
cd ios
pod install
Follow that with Product > Clean Build Folder (Shift + Command + K) in Xcode so stale derived data from the failed build doesn't mask whether the change worked.
Swift Package Dependencies
Swift packages can trigger the same error through their platforms declaration. If a dependency's Package.swift lists something like .iOS(.v13), that value is baked into the package and you can't override it from the consuming side the way you can with the Podfile hook. Your options are to move to a newer release of the package that already targets iOS 15 or later, or, if the project is stale, fork it and bump the platforms line yourself. It's worth opening an issue on the package too, since maintainers generally raise their minimums in step with Xcode anyway.
If You Genuinely Need to Support Older iOS
Sometimes raising the floor isn't an option yet, maybe because you still have a meaningful slice of users on iOS 14 and can't drop them mid-cycle. There's no build flag that makes Xcode 27 produce binaries for an unsupported target, so the only real workaround is to keep an older Xcode installed alongside the new one. A tool like xcodes makes it easy to download and switch between versions, so you can keep Xcode 26 around for the lower deployment target while using Xcode 27 for everything else.
Treat this as a short bridge, not a permanent setup. Apple requires App Store submissions to be built with a recent SDK, and that requirement rolls forward every year. Realistically you'll have until around spring 2027 before the App Store stops accepting builds made with Xcode 26, at which point you'll have to move to Xcode 27 and a 15.0 minimum regardless. Use the runway to raise your deployment target on your own schedule rather than being forced into it on submission day.
Wrapping Up
The error reads like a wall, but it's really just Xcode telling you one of your targets is aiming at an iOS version it no longer builds for. Get every target, your app, its extensions, and your dependencies up to 15.0 or higher and the build goes green. The CocoaPods post_install hook handles the dependency case in one place, and if you truly can't move yet, an older Xcode buys a little runway before the next App Store cutoff makes the decision for you.
// Continue_Learning
Fixing "No Such Module" Errors in Xcode
When Xcode says it can't find a module you've clearly installed, the problem is usually in your build configuration, not your package manager.
Fixing CocoaPods "Unknown ISA PBXFileSystemSynchronizedRootGroup" Error
How to resolve the pod install error caused by Xcode 16's new folder-based group structure.
Testing Push Notifications on iOS Simulators with xcrun simctl push
Learn how to test push notifications on iOS simulators without needing a device or server setup using xcrun simctl push.
// Stay Updated
Get notified when I publish new tutorials on Swift, SwiftUI, and iOS development. No spam, unsubscribe anytime.