Извлечь имя выпуска macOS из версий Darwin/XNU

Есть ли какое-либо уравнение для получения версии macOS (10.X) из соответствующей версии darwin или версии xnu (без предварительно определенной таблицы для каждой версии)

Например, в macOS Mojave (10.14) у нас есть следующее содержимое:

darwin version 18.0.0
xnu version 4903.200.249

А в macOS high sierra (10.13) у нас есть:

10.13.3: xnu-4570.41.2  darwin version 17.4.0   
10.13.2: xnu-4570.31.3  darwin version 17.3.0   
10.13.1: xnu-4570.20.62 darwin version 17.2.0
10.13:   xnu-4570.1.46  darwin version 17.0.0   

Итак, я пришел к выводу, что основной номер в версии Darwin уникален для каждой версии ОС:

..
16->10.12,
17->10.13, 
18->10.14, 
..

Верно ли мое предположение?


person Irad K    schedule 01.07.2018    source источник


Ответы (2)


Да, это верно для основных номеров версий. Второстепенные версии иногда увеличиваются, даже если версия macOS этого не делает, и наоборот, как в случае с 10.13.1, где второстепенная версия darwin увеличивается на 1 для выпуска безопасности, и снова для 10.13.1.

person pmdj    schedule 01.07.2018

Уравнение правильное. Чтобы охватить все варианты *OS, вы должны использовать:

Пусть D = версия Дарвина

MacOS = 10.(D-4) TvOS = iOS = (D-6) WatchOS = (D-13)

А миноры вообще выравниваются, если только, как заметил pmdj, нет инкрементов для исправлений.

Если вам нужна точная версия MacOS (или вариант *OS) с младшим номером без угадывания, единственное место, где она действительно «живет», - это /System/Library/CoreServices/SystemVersion.plist. Ключ ProductVersion (а в MacOS ключи ProductUserVisibleVersion — это те, о которых сообщается в графическом интерфейсе и в других местах. Номер версии MacOS не имеет реального значения нигде в ОС.

person Technologeeks    schedule 02.09.2018