macOS 27 Golden Gate May Become the End of the Golden Era for Mac Apps
I have been a C++ developer for over a decade, and while learning Objective-C I was happy to find out that Xcode gives this awesome possibility to support much older macOS versions with minimal effort while still using a modern SDK. Many users keep older Macs for years. Some of those Macs cannot be updated because Apple drops hardware support. So being able to support old macOS versions is not just some legacy developer habit. It is actually useful for real users. Apple has this page with SDK minimum requirements, and right now it says apps uploaded to App Store Connect must be built with Xcode 26 or later for the listed platforms. For Mac apps, Xcode 26 is great because it still lets me build apps with very old deployment targets. Apple’s Xcode requirements page lists Xcode 26 with macOS deployment targets from macOS 11 to macOS 26. In Xcode 26, the warnings were only for macOS deployment targets older than 10.13 but still compile. macOS 10.13 itself was still the lowest target I could use without warnings in my project. I have made Mac App Store apps that work on macOS 10.9+. Xcode gives warnings to update the minimum version, but the apps are fully functional and were recently approved in the Mac App Store. Objective-C and AppKit allowed me to support older users without holding back the experience for users on current Macs, and no features dropped. That means I could release apps that run on almost any macOS released in the last 13 years. That is awesome! Now Apple announced macOS 27 Golden Gate and Xcode 27. I downloaded the beta to try it and confirm that my apps are compatible. Good news - all of my apps are compatible. But what took my attention is that I could not compile my apps with Xcode 27 anymore. Unlike Xcode 26, where I got warnings, now it is an error: "The macOS deployment target 'MACOSX_DEPLOYMENT_TARGET' is set to 10.9, but the range of supported deployment target versions is 12.0 to 27.0.x." Wow. That is huge. Apple’s Xcode requirements page now lists Xcode 27 beta with macOS deployment targets from macOS 12 to macOS 27. So Xcode 27 beta does not just warn about old macOS deployment targets anymore. It refuses to build them. That means, at least in Xcode 27 beta, Apple dropped build support for all macOS releases older than macOS 12. Why is this important? Because if Apple later updates the App Store requirements and requires Mac App Store apps to be built with Xcode 27, then developers will lose the possibility to publish app updates that support macOS 11 and older. That is macOS 11 Big Sur, macOS 10.15 Catalina, macOS 10.14 Mojave, macOS 10.13 High Sierra, and older releases. Many users are still stuck on those versions because their hardware does not allow them to update. So macOS 27 Golden Gate, released together with Xcode 27, may not just drop Intel Mac support. It may also make the Mac App Store even more useless for users on macOS 11 and older, because developers would have only bad choices: Drop macOS 11 and older support in the next update. Keep support for old users, but stop releasing Mac App Store updates for the existing app, ending up with a re-release as a separate app. The second option would force users on newer macOS versions to buy the same app again, which would likely push many developers to drop old macOS support entirely instead. There is still a small hope that Apple may fix this before the final Xcode 27 release and treat lower macOS deployment targets as a warning again, not as an error. But as of now, the Xcode 27 beta build fails. Also, I noticed that the new Xcode 27 beta uses about 3 GB less disk space. That may be unrelated, but together with the new hard minimum deployment target, it makes me think Apple may have removed not only some x86_64 related parts, but also a lot of pre-macOS 12 support. For direct distribution outside the Mac App Store, developers will likely still be able to keep older Xcode versions installed and use them to build separate legacy versions for older macOS releases. So apps distributed from a developer’s own website may continue supporting older systems for longer. Most developers will not want to maintain separate build pipelines, separate update systems, separate payment or licensing systems, and separate support flows. Some developers also do not want to distribute outside the Mac App Store at all. I don’t expect Apple to support macOS 10.x forever. Dropping old versions is normal. I would expect this to happen gradually, one major macOS version per year, so developers and users have time to prepare. So yes, macOS 27 Golden Gate may become the end of the golden era for backward-compatible Mac App Store apps. Update 1: Xcode 27 for iOS enforces a similar way, while Xcode 26 has no errors on compiling the minimum target of iOS 9.0. It is now treated as an error, and minimal iOS 15.0 is enforced within Xcode 27. Update 2: Important update after more testing. The Xcode 27 beta error can currently be worked around by setting __DIAGNOSE_INVALID_DEPLOYMENT_TARGET_AS_ERROR to NO, which makes older deployment targets buildable again. So this is not currently a hard technical cutoff in Xcode 27 beta. The original concern still applies only if Apple removes this workaround, keeps it unsupported, or later enforces newer deployment targets through App Store submission requirements.
Collected discussion
You missed this: Xcode 26 is not required to submit macOS apps. Just submitted app with Xcode 15. Yes, you cannot use Swift 6.2 and higher
Apple says Apps uploaded to App Store Connect must be built with Xcode https://developer.apple.com/news/upcoming-requirements/
Developer with ~3 decades of experience here. I develop a professional Mac app for Hollywood colorists with large user base of people which are known for being extremely conservative with software updates. A year ago we had <<1% users on macOS 11 .
This has happened before. In Xcode 26, it warned on a 10.9 target but still built the app. With Xcode 27 , it now errors out with "supported deployment target versions are 12.0 to 27.0." Both system requirements and beta release notes now say it. I keep Xcode 26 installed for such cases, as Swift version conflicts get messy fast. Are you updating all projects to 12.0, or are you keeping separate toolchains?
I’ll keep the lowest possible macOS target for as long as Apple allows it on the Mac App Store. I prefer to use Objective-C over Swift for the same reason. Until now, I did not have this kind of minimum macOS target enforcement. So if I have to use macOS 12 as the minimum target, I will likely start making apps in Swift, because at that point there is no real downside.
Come on man, this isn't Windows. At one point you gotta keep up with the times. I'm not a fan of devs who force you to run the latest major, but supporting n-1 or -2 (n = latest stable major) is standard practice and perfectly reasonable given how many users you can target. More than that you are just gonna waste tokens and/or time fixing issues for a niche. Apple is right here.
Is this due to Apple dropping support for intel based machines?
I understand not required the latest macOS 26 for your apps, but there is really ne reason to go as far back as 10.9. Those machine are obsolete, or can be updated to newer version. You should check your analytic and I doubt you'd have any user on those version. It's a security nightmare since those version don't haven't received any security updated
Keep Xcode 26 installed on a seconfdary machine, if you need to support old system. Nothing to shout about...
If you are trying to make money with these apps, you want to target the paying customers. The people who aren’t upgrading aren’t buying nearly as much software, as they are generally happy with what they have. Nothing wrong with that, but as a business you’ll do better focusing on newer OS versions and the capabilities they offer above and beyond what older hardware and software support.
The oldest Mac support macOS 12 is from 2015, which is 11 years ago. At that point either have the legacy client pay to have a separate branch to maintain alongside with modern branch, maintaining legacy code with modern code is painful
I think you are referring to macOS 10.12, not 12. Maintaining legacy code with modern code is painful. Not as of my experience and for my needs. I got a few exceptions to add macOS 10.13 support, which was relatively easy, and I reuse those in all my apps and a little more exceptions to add 10.9 support. I think it is related to Objective-C development, with Swift, it may be a different situation.
can /skills help with it?
Actually, there is a solution. I added it at the end of the post. Anyway, it is worrying that Apple started enforcing it by default and may remove such workaround in the Xcode 28
I know this is something you're kind of down because of it but lets be serious and honest. Yes, people do get and use older versions of macos specially old macbook pro models which lost support. Being honest do they represent a big majority on your sales as a developer of apps? is the effort enough to support them? this reminds me back then when Internet Explorer was a thing and many many users still used it back then in 2014-2017 and you had to support it specially in my country where all banks and government websites needed it and you could not use anything else to browse those websites. But then something happened and everyone embraced Chrome and Firefox and IE kind of died but wasnt dead, old users still used it cause they did not wanted to upgrade windows versions and didnt know how to update their browsers so clients really had to make a choice: pay more to support old IE browsers or save that and only support newer browsers and it was pretty obvious what they chose cause old users did not buy anything from internet nor participated on online communities nor used social media that much and they even less participated on digital marketing campaigns so the choide was pretty clear... stop supporting old browsers cause they're not worth it anymore in money terms and Im pretty sure that's also something you should consider.
backwards compatibility was always a problem just look at windows ms can't move to the future because of all the junk they have to support. apple doesn't have that problem because the vast majority is upgrading quite fast anyway so supporting very old macos versions is mostly a stupid decision
I know that problem for sure. I make C++ apps for Windows and Linux too, and keeping them compatible with old releases can be a nightmare. That is exactly why I think Apple’s approach was amazing. They had something that is very hard to achieve on other platforms. You could build with a recent SDK, use runtime checks, and run different code paths depending on the macOS version without linkage or runtime problems. That is why I could see Apple continuing to support older macOS targets this way.
The golden era has been over for awhile. You don't really see many new bespoke, handcrafted apps anymore. Mostly nice little utilities or bloated Electron apps trying to do 18 things with a subscription (now with AI!)
I've been in this space for 20+ years (15 working with devs). The 'Apple is going to ruin everything' panic was around back then, and we still have that same panic today, apparently. The big apocalypse never came, and it's probably not coming now. Times change, things go in and out of style. Some things go away forever, some stay. The current era is always just a reflection of what we humans did during that period.
Devs can split releases? backward-compatible Mac App Store apps. of course, outside App Store.
As a developer... good. I question your sanity wanting to support all those obsolete versions of macOS. How do you even test against them in 2026 and how many users are there actually still running 8+ year old Mac's on obsolete macOS versions that haven't repurposed the hardware with Linux or Windows by now anyways.
UTM is the answer, all of those are running great on MacBook Pro M1 Max.
Xcode26 didn't fully support 10.13. The compiler is using SwiftValue instead of NSNumber on 10.13. e.g. (NSImageInterpolation.high) causing a crash: https://github.com/lwouis/alt-tab-macos/issues/5255#issuecomment-3871978698
It did fully support Objective-C apps, and it even fully supports macOS 10.9. It is just the xib editor required for macOS 10.13. Swift has its own minimum requirements higher than that.
While not taking a postion either for or against the OP's argument, I will say I am irritated that the thread title is click-bait: The thread title says "...End of the Golden Era for Mac App Store Apps". But the actual content is "....End of the Golden Era for Backwards-Compatibility of Mac App Store Apps". The two are very different.