A few questions about allowed-os-versions and os-version in Distribution Definition files

In the archived documentation for Distribution Definition files (https://developer.apple.com/library/archive/documentation/DeveloperTools/Reference/DistributionDefinitionRef/Chapters/Distribution_XML_Ref.html), the allowed-os-versions and os-version element are partially documented.

I have a few questions about these elements:

allowed-os-versions

The documentation states:

Availability: Available in OS X v10.6.6 and later.

Has this element always worked correctly in the past? I'm asking because it does not seem to work correctly on OS X v10.14 for the min attribute of a sub os-version element.

os-version

The documentation states:

This element is designed for you to use a specific OS version number for the min attribute, and a major OS version number for the before attribute. The expectation is that you will know an exact minimum version but not an exact major version. This keeps you from having to guess the last minor revision before the next major revision, as you would have to do if the before attribute were inclusive.

This is quite confusing because the documentation never explicitly says what a specific or major OS version number is.

Is specific major.minor.patch or major.minor? What is major? major or major.minor?

As the documentation was created at a time where the OS version scheme was: 10.minor.patch (and minor was actually the major) and we are now in an era where the OS version is major.minor.path, this is even more confusing.

I would also be curious to know what the major version is officially supposed to be for macOS Tahoe in this case. 16 or 26?

Generally speaking, this documentation is missing examples for a lot of the elements.

Also why is there a tag for InstallerJS and not one for Installation in the Developer Forums?

Answered by DTS Engineer in 857983022
Also why is there a tag for InstallerJS and not one for Installation in the Developer Forums?

Again with the why questions (-:

Seriously though, I agree that there should be a tag for Mac installer packages. Although I’d probably call it Mac Installer rather than just Installation, because otherwise it’ll get flooded with iOS stuff.

I can’t fix this immediately, but I’ve put it on my to-do list so that it doesn’t slip through the cracks.


Has this element always worked correctly in the past?

Clearly no, in that you’re seeing it fail on 10.14.

As to what you should do about this, it depends on whether you actually need to support 10.14 or earlier systems?


Generally speaking, this documentation is missing examples for a lot of the elements.

It’s also in the Documentation Archive )-:

As I mentioned in your other thread, if you want to see the docs improve then the first step is to file a bug for the issues you see (or enhancement request, as some point it doesn’t really matter).

If you do file any bugs, please post the bug numbers, just for the record.

I would also be curious to know what the major version is officially supposed to be for macOS Tahoe in this case. 16 or 26?
This is quite confusing because the documentation never explicitly says what a specific or major OS version number is.

Right. But I don’t think you need to know that, in that the implementation is just gonna do a comparison between min and before elements. So, something like:

set result to (current OS version >= `min`)
if result and has `before` then
    set result to (current OS version < `before`)
end if

So all you need to know is how to compare OS versions, and that’s pretty straightforward (treat any unspecified component as 0).

Or at least that’s how I interpret this (-: Lemme know if you see behaviour that contradicts that.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

Also why is there a tag for InstallerJS and not one for Installation in the Developer Forums?

Again with the why questions (-:

Seriously though, I agree that there should be a tag for Mac installer packages. Although I’d probably call it Mac Installer rather than just Installation, because otherwise it’ll get flooded with iOS stuff.

I can’t fix this immediately, but I’ve put it on my to-do list so that it doesn’t slip through the cracks.


Has this element always worked correctly in the past?

Clearly no, in that you’re seeing it fail on 10.14.

As to what you should do about this, it depends on whether you actually need to support 10.14 or earlier systems?


Generally speaking, this documentation is missing examples for a lot of the elements.

It’s also in the Documentation Archive )-:

As I mentioned in your other thread, if you want to see the docs improve then the first step is to file a bug for the issues you see (or enhancement request, as some point it doesn’t really matter).

If you do file any bugs, please post the bug numbers, just for the record.

I would also be curious to know what the major version is officially supposed to be for macOS Tahoe in this case. 16 or 26?
This is quite confusing because the documentation never explicitly says what a specific or major OS version number is.

Right. But I don’t think you need to know that, in that the implementation is just gonna do a comparison between min and before elements. So, something like:

set result to (current OS version >= `min`)
if result and has `before` then
    set result to (current OS version < `before`)
end if

So all you need to know is how to compare OS versions, and that’s pretty straightforward (treat any unspecified component as 0).

Or at least that’s how I interpret this (-: Lemme know if you see behaviour that contradicts that.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

It’s also in the Documentation Archive )-:

With no good reasons. It's like deprecating the gestalt API and not providing a replacement API.

As to what you should do about this, it depends on whether you actually need to support 10.14 or earlier systems?

If it were up to me, I would like to support from 10.6.6. But at least, if there are known versions of OS X/macOS that do not support this option as expected, then it would be great to clearly advertise from which version there are no gaps in support.

I guess I will have to file a feedback ticket again.

A few questions about allowed-os-versions and os-version in Distribution Definition files
 
 
Q