苹果版本号/内部版本号背后的结构是什么?


12

macOS Sierra 10.12.3是16D32,但是SDK 16C58根据我的Xcode。

iOS 10.3 Beta是14E5239e

Xcode 8.2是8C38

您知道它们的外观,并且它们已在所有Apple软件中共享。

但是它们是如何组成的?背后的逻辑是什么?我几乎猜不到“有时”,第一个数字是“主要”版本,例如。对于Xcode,但这并不总是正确的,例如。适用于iOS。

中间的字母是什么?

最后一个数字肯定是一个顺序的内部版本号,带有较小的修订版本并附加了一个小写字母(以iOS 10.3 beta版为准)。

它们都是从1A1内部开始,然后在构建之后继续构建吗?

这里有什么更大的计划?


1
老实说,我问这个问题是否可以在我们自己的软件和CI环境中复制“他们的”版本控制方案。这不是出于纯粹的好奇心。我愿意,如果您愿意,请关闭。
Cyrille

1
@fsb我鼓励您查看提供的答案,以了解为什么这个问题不是题外话。
grg

@grgarside我不同意并且仍然认为它是题外话,但是,我删除了我的评论并关闭了投票。
fsb

我对“理性”一词的使用可能也有些混乱。练习英语已有二十年了,但有时我还是会在单词上迷失:)
Cyrille

Answers:


11

Paul Suh(以前是苹果公司的咨询工程师和培训开发人员)撰写了以下文章(发布在Joe Moreno的博客上):

例如,Mac OS X 10.4.10 Intel是内部版本8R2232。Mac OS X Server 10.4.11 Universal是8S2169。这些数字具有以下粗略含义:

8-这是软件包的主要版本号。10.5 = 9,10.4 = 8,... 10.0 =4。在此之前是NextStep 3.3,从中我们得到3个系列。

R-这是次要版本号。对于系统更新,它总是递增(即,从10.4.10到10.4.11始终是字母跳转),但对于特定于硬件的版本,它也可能递增。R是第18个字母,但只有第10个更新为Tiger。其他8个字母颠簸是针对新版本的硬件支持。安全更新通常不值得大惊小怪。

2232-这是次要版本中的顺序内部版本号。如果是四位数,则第一位表示特定的平台。在这种情况下,2表示它适用于Intel。三位数或更短的数字表示所有体系结构的统一版本。其余数字是顺序的内部版本号。在这种情况下,R火车在发布之前有232个版本,第一个是8R2001版本。尽管构建大约是每天进行的,但是您不能真正按照这个数字进行构建。在早期阶段,构建只能每两到三天进行一次;到最后,它们可能一天发生两次或三次。根据Apple Engineering认为优先级与代码各种更改风险之间的关系,连续发行版本的构建过程可能会在一定程度上重叠。最早的版本10.4。11几乎可以肯定与10.4.10的最新版本重叠。Leopard的版本肯定与Tiger更新的版本重叠,几乎可以追溯到Tiger发行后的第二天。

请注意,不同的软件包具有完全不同的内部版本号,因此您不能以有意义的方式将内部版本号相互比较。例外是Mac OS X和Mac OS X Server共享相同的内部版本号。


1

MacRumors 在一篇文章中提到了Apple的内部编号方案。尽管不是官方资源,但它确实表明编号背后有一定的逻辑。

根据Apple的内部版本号方案,“ 13”表示OS X 10.9,“ A”表示10.9.0版本,“ 451”是已编译内部版本的顺序编号的一部分。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.