MacOS 26

curious what xojo will return which major version macOS26 is. :thinking:
16 or 26?

Could break stuff when you depend on this (like in one of my apps).

why should it break stuff?

Probably we will report what macOS itself reports… :slight_smile:

Don’t forget that Xojo did something special for macOS 11. In the first versions, Intel machines returned 10.16 while ARM returned 11.0.

Yes, and the result was not fun.

I don’t think that Xojo has done something special - this has been by design (from Apple) :wink:

Applications linked against “pre macOS 11” SDK’s have reported 10.16. Once linked against a macOS 11+ SDK it would report 11.

If we wanted to blame Xojo, then for not using the same SDK version for both
Intel and ARM in the first Xojo Version where they’ve introduced macOS ARM support. :wink:

We’ll find out soon (assuming they really deliver a macOS with a jump to version 26)…
It wouldn’t surprise me if they (Apple) would do the same again - report 16.x for existing/old applications (linked against “now-current” SDK’s, which don’t now about this version-jump), while returning 26 for apps linked against the upcoming SDK.

Could, but shouldn’t :wink:
In most cases this has been some bad habit to hardcode some version checks which one could call a mistake by the developer. But you’re right - certainly something to watch out for.

If you’re testing against a minimum version in the way I would imagine would most commonly be done:

if System.Version.MajorVersion < 13 then 
MessageBox "MacOS Ventura or newer is required"
Quit
end if

Either 16 or 26 will satisfy your test.

Alternatively if you have a switch block and are testing known OS versions one by one then you’re already used to updating every time there’s a new OS release.

For one of my B2B apps I use a license scheme that is linked to macOS versions (don’t ask why - it has a very specific reason). So it could break things.

Testing using the developer beta of Tahoe, and Xojo 2025R1, my Xojo app is reporting these versions:

Using System.VersionData
16.0.0 build 25A5279m

Using System.Gestalt
16.0.0

Using 'SYSTEM_VERSION_COMPAT=0; sysctl -n kern.osproductversion'
26.0

So it does seem like macOS Tahoe is giving altered version #s (16) unless you explicitly opt-in to the truth (26).

Here’s the app which generates this info:

tahoe.xojo_binary_project.zip (5.6 KB)

3 Likes

I don’t know if this would change… but, by now, looks like apps get macOS 16 as the version.


I’ve been working on figuring out how the new app icons work, and it’s kind of puzzling. I may be overthinking it.

Apple has provided us a new Icon Composer tool. You give it some vector art, assign colors, layers, effects, etc. and it adds all the correct effects for you. You get a “.icon” file which can be dragged into Xcode for use.

If I do all that and build a simple Swift app, it all works as expected. The app icon gets the dark, clear, and tinted effects exactly as expected. But looking at what Xcode is doing is where things get weird. There are no special Info.plist keys, the icon or vectors are not in the resources folder or assets file. It seems like Xcode uses the .icon file to produce a 4-image icns built from pngs, and the operating system can figure out what to do based on the png? Which is backed up by my existing app icon working correctly except under dark mode.

But it leaves me perplexed because the “new” icon in dark mode properly swaps the background color into the foreground, and the background becomes blackish. Which is impressive, I suppose. So I suppose there is either nothing or very little we need to do to adopt the new icons.

I think that Tahoe may be both 16 or 26 depending on the build number. But at release time it probably will be numbered 26.0 or already numbered as that at some point during the betas (guessing, but based on all I’ve read until now)

I would expect that apps linking to old SDK get 16 and when you link to 26 SDK, you get 26.

Just like 10.16 vs 11.0 years ago.

1 Like