Last week, as macOS 27 Golden Gate was released, third-party developers started announcing compatible versions of their software. Often times developers announcing support for a new operating system is a pleasant relief to enterprise admins—🎉they acknowledge the new OS exists and have support for it!🥳
Other times it leads to puzzlement and questions, especially when no known issues have surfaced during the beta period of the new OS.
Before I start unpacking the potential meanings behind “Support for macOS” statements, I’ll say that ultimately it’s the third-party software vendor who decides what ‘support’ means. The phrase ‘Support for macOS Golden Gate’ might even mean different things for different software products from the same vendor.
As an individual developer who ships OS compatibility updates, and used to make many more, let me illuminate possible meanings behind the statements.
Meaning 1: The vendor’s support organization will not entertain cases that don’t match a supported software version on a supported OS
Simply put, if one opens a case regarding an older version of third-party software on an unsupported operating system, it risks the case being closed due to the version mismatch. At the very least, the support organization reserves the right to ask the customer to upgrade before allowing their case to proceed.
The supported version may represent the only release validated by the developer’s (hopefully comprehensive) suite of automated and manual tests on the new operating system.
Meaning 2: Bugs and misbehaviors that only occur on the new OS are fixed in this version
Bugs like this don’t get a lot of play in release notes because the bugs have not been experienced by customers on supported operating systems.
This meaning is the case for the newly released Particulars 70, just as it was for my first compatibility update for Snow Leopard in 2009.
Meaning 3: The application is “aware” of the new OS version
Some applications process the operating system version. For instance, reporting the version to a management system, analytics reporting, testing the version for validity or support, mapping the version and so on.
For instance, Particulars looks up the operating system version name (e.g. “Golden Gate”) from the OS version. Jamf Setup Manager does something similar.
Other examples in this category include handling non-incremental major version changes such as 10.15→11 and 15→26, renaming of OS X to macOS in 10.12, and the introduction of Rapid Security Responses.
Meaning 4: New APIs are adopted
The software developer has adopted APIs only available on the new OS. This is most visible when adopting new visual APIs such as 26’s Liquid Glass or 10.14’s Dark Mode. They may be adopting new OS features. New APIs can allow the developer to write the same feature in a fraction of the code.
Particulars 47‘s adoption of the SMAppService API for launching at login is an example of this that ultimately led to the removal of legacy code. (Also see Meaning 6.)
Meaning 5: Changes to API behavior are accounted for
It’s entirely possible that calls to the same API differ in output across OS releases, especially as bugs in the APIs are fixed. In fact, this one was the cause of my first compatibility update in 2009. An API changed in a way that exploited my code’s bad logic.
Such changes don’t have to induce bugs. For instance, apps on macOS can register to be called when the screen dimensions change and Particulars does this. At different points macOS has increased the number of conditions when registered apps are called. That’s not necessarily a bug, just a new behavior to be understood and accounted for.
Meaning 6: Calls to deprecated APIs are switched for supported replacements
In each OS release, Apple deprecates older APIs that it wishes to later remove. Those may or may not have functionally equivalent replacements, but depending on the minimum target OS the developer can switch the calls to deprecated APIs to supported replacements. This gives the appearance that the app hasn’t changed but it has become more future-proof.
When calls to the deprecated APIs have been removed, it causes no harm later when the API malfunctions or is finally removed.
Meaning 7: New compiler warnings or behaviors are addressed
Most versions of Xcode ship with a new compiler. New compilers often introduce new warnings about code. When I was starting out in Cocoa development (as we called it then), a more seasoned developer shared the wisdom that “today’s warnings are tomorrow’s errors, crashes, and bugs.”
Like removing deprecated calls, resolving compiler warnings usually results in a functionally equivalent application, but one that is more stable and future-proof than before.
For many years now Xcode also validates project and compiler settings for best practices. As these practices are adopted, additional new warnings and behaviors are addressed.
Meaning 8: It’s a marketing message
Timely notices of support for a new OS send messages to customers and competitors alike. “We are ready for this OS. You can rely on us.” It may result in news coverage or being included on lists of compatible applications. In short, it’s good publicity.
In closing
I hope this has provided a solid tour of what might be behind a software vendor’s vague “Support for macOS” statement in their release notes. Every announcement will have a different set of reasons behind it, including ones I haven’t thought of. Since 2022, when Apple effectively made major macOS updates inevitable, I’m glad for early notices of support from third-party developers.
Leave a comment