Xcode 14 and supporting macOS 10.9 - 10.12

So, in Xcode 14 beta, Apple removed support for deploying to macOS 10.9 - 10.12 You couldn't select those in the dropdown for minimum OS version, and if you attempt to force it by setting MACOSX_DEPLOYMENT_TARGET=10.9 in command line, you would get a warning that says this:

warning: The macOS deployment target 'MACOSX_DEPLOYMENT_TARGET' is set to 10.9, but the range of supported deployment target versions is 10.13 to 13.1.

Apple even mentioned this in their release notes (under Build System → Deprecations, tagged 92834476) and updated the table at https://developer.apple.com/support/xcode/ to refer to the fact that Xcode 14 only supports 10.13 and above.

Now, Xcode 14 finally got out of beta and released. I downloaded it and guess what 10.9 - 10.12 are all in the list of OSes in the "Minimum Deployments" dropdown, and building with MACOSX_DEPLOYMENT_TARGET=10.9 no longer complains.

Anyone knows what the deal is? Did Apple change their mind and lets us deploy to older versions again? Did the "unsupported" literally just mean a scary warning and UI change in Xcode to scare us away from deploying to those targets?

Answered by galad87 in 727718022

Xcode ships only one SDK per platform. Xcode 14 still has the old macOS 12 SDK, while the beta had the macOS 13 SDK. This is because, just like last year and the year before, the new macOS version is still in beta, and Apple doesn't ship a beta SDK in a public release. The macOS 12 SDK allows to deploy to 10.9, the 13 SDK that was in the beta and that will be in Xcode 14.1 will allow only to deploy to 10.13 and higher.

I was wondering about the same thing. The release notes for Xcode 14 say only macOS 10.13 and newer are supported, but running all my projects that have deployment target macOS 10.10 works fine. Except for one of them, the only one which has a dependency installed with Swift Package Manager, which now complains that the dependency, which got its last commit over 1 year ago, only supports macOS 10.13 and newer (this was working fine with Xcode 13).

Xcode 14 doesn't ship the macOS 13 sdk. All these changes that were in the Xcode 14 beta will be in Xcode 14.1.

Accepted Answer

Xcode ships only one SDK per platform. Xcode 14 still has the old macOS 12 SDK, while the beta had the macOS 13 SDK. This is because, just like last year and the year before, the new macOS version is still in beta, and Apple doesn't ship a beta SDK in a public release. The macOS 12 SDK allows to deploy to 10.9, the 13 SDK that was in the beta and that will be in Xcode 14.1 will allow only to deploy to 10.13 and higher.

Xcode 14 and supporting macOS 10.9 - 10.12
 
 
Q