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?
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"