Everyone knows that Apple operating systems have version numbers, like iOS 13.5.1 or macOS 10.15.5. But have you noticed that Apple operating systems also have build numbers? For instance, iOS 13.5.1 is build number 17F80. But what does that mean?
To see your macOS version and build numbers on a Mac, choose Apple > About This Mac and click the version number. In iOS or iPadOS, go to Settings > General > About and tap Software Version. For watchOS, in your iPhone’s Watch app, go to General > About and look at the Version line.
Although it’s easy to check the build number of any operating system you’re running, Apple doesn’t publish a canonical list of them anywhere. For that information, head to Wikipedia’s iOS Version History, macOS Version History, watchOS, and tvOS articles or look in the MacTracker app (for the macOS build numbers, you’ll need to click through from the version history article to the expanded article about each release).
Apple makes a new build of each operating system at least every night, so there’s a fresh version ready for the engineers each morning. Most of these builds are never released outside the company, so they don’t get an official version number like 13.5.1. But the engineers still need a way to identify a particular build. That’s what build numbers are for. Once you understand how to decode Apple’s build numbers, you can glean additional information about any given release.
Understanding Apple Version and Build Numbers
Apple’s two main operating system lines, iOS and macOS, have independent version and build number systems. iOS, iPadOS, watchOS, and tvOS share a common system since they are all derived from the iOS code base. (Only Darwin-derived operating systems—macOS, iOS, iPadOS, watchOS, and tvOS—use build numbers. Classic Mac OS and iPod OS didn’t use the same build number system.)
As you know, every Apple operating system release has an official version number, composed of three parts:
- Major version: For iOS, it’s incremented once per year for significant upgrades. For macOS, the major version number has been 10 since the initial release of Mac OS X, rendering it pointless up until the upcoming update to macOS 11 Big Sur.
- Minor version: For iOS, the minor version is incremented as necessary (usually three to six times) throughout the lifespan of a major version to reflect updates that contain new features along with bug fixes. For macOS, the minor version is really the major version, incrementing for each annual named release of macOS.
- Patch version: For iOS, the patch version increments as necessary for bug fix updates to each minor release. For macOS, Apple updates the patch version for every release that’s more than just a quick bug fix—those are called “supplemental updates” and don’t get their own version numbers. But their build numbers change!
Here’s a simple chart to help clarify the official version numbering scheme.
An Apple build number also has three parts:
- Major version: Within Apple, the major version is called the build train.
- Minor version: For iOS and its descendants, the minor version tracks with the minor release; for macOS, it tracks with patch releases.
- Daily build version: The daily build indicates how many times Apple has built the source code for the release since the previous public release.
To make this crystal clear, look at iOS 13.5.1, which is build 17F80, and macOS 10.15.5 with its supplemental update, which is build 19F101.
One tangentially related note: For macOS Big Sur, Apple updated the major version number to 11 and reset the minor version number to 0. This move may cause problems for some apps that check feature availability by looking up the operating system version. Since macOS’s major version number remained at 10 for so long, some developers got lazy and checked only the minor version number. Needless to say, such sloppy code could break in Big Sur. Luckily, as Howard Oakley explains, Apple has made some effort to mitigate this problem by having Big Sur return 10.16 rather than 11.0 in some situations. This is why apps should check macOS APIs directly for the existence of a particular feature, rather than assume it exists in a specific operating system version just because Apple first included it in that version or an earlier one.
Major Build Number
These days, the major build number for iOS changes every year. iOS 13’s major build number is 17; iOS 14’s is 18.
|iOS, iPadOS, watchOS, and tvOS Build Trains|
|iOS||iPadOS||watchOS||tvOS||Major Build Number|
|iPhone OS 1||1–4|
|iPhone OS 2||5|
|iPhone OS 3||7|
|iOS 8||watchOS 1||12|
|iOS 9||watchOS 2||tvOS 9||13|
|iOS 10||watchOS 3||tvOS 10||14|
|iOS 11||watchOS 4||tvOS 11||15|
|iOS 12||watchOS 5||tvOS 12||16|
|iOS 13||iPadOS 13||watchOS 6||tvOS 13||17|
|iOS 14||iPadOS 14||watchOS 7||tvOS 14||18|
With macOS, the major build number also changes with every significant release, which occurs every year now, although less frequently in the past.
|macOS Build Trains|
|macOS Version||Major Build Number|
|Mac OS X Public Beta||1|
|Mac OS X 10.0 Cheetah||4|
|Mac OS X 10.1 Puma||5|
|Mac OS X 10.2 Jaguar||6|
|Mac OS X 10.3 Panther||7|
|Mac OS X 10.4 Tiger||8|
|Mac OS X 10.5 Leopard||9|
|Mac OS X 10.6 Snow Leopard||10|
|Mac OS X 10.7 Lion||11|
|Mac OS X 10.8 Mountain Lion||12|
|Mac OS X 10.9 Mavericks||13|
|Mac OS X 10.10 Yosemite||14|
|Mac OS X 10.11 El Capitan||15|
|macOS 10.12 Sierra||16|
|macOS 10.13 High Sierra||17|
|macOS 10.14 Mojave||18|
|macOS 10.15 Catalina||19|
|macOS 11.0 Big Sur||20|
Minor Build Letter
For iOS, the minor build version usually changes for each X.1 operating system release. It’s a letter, not a number, and generally clambers its way up the alphabet. There are some discrepancies, such as iOS 13.1 continuing minor version A instead of switching to B. Also, iOS 13.3 is minor version C, and iOS 13.4 is minor version E, skipping D. More on these oddities shortly.
|iOS 13 Minor Versions|
Things are a bit different in the macOS world. As you can see, the minor build letter corresponds with the macOS patch release number.
|Catalina Minor Versions|
Daily Build Number
Things get interesting when we come to the daily build number. Apple engineers increment it every time a new build is made, usually every night, but sometimes more often. The first time Apple made an engineering build of iOS 13, it was assigned build number 17A1. The next build was 17A2. And so on.
The first shipping version of iOS 13.0 was 17A577, which means Apple made 577 builds of iOS 13 before it shipped the first copy to users. The second shipping build was iOS 13.1, build number 17A844. It took an additional 267 builds to create iOS 13.1. More interesting are the build numbers corresponding to the patch releases.
|iOS 13 Patch Releases|
|iOS 13.1.2||17A860 and 17A861|
As you can see, Apple was pushing those patch releases out quickly—there were only 10 builds between iOS 13.1 and iOS 13.1.1, only 6 or 7 between 13.1.1 and 13.1.2, and only 17 or 18 more before the release of iOS 13.1.3. I don’t know why iOS 13.1.2 had two build numbers; iPadOS 13.1.2 shared only the first one, so perhaps the second one was specific to a particular iPhone model or geographic area.
With macOS, the daily build number is more important. As you’ve undoubtedly noticed, when Apple is forced to release a quick bug fix update for all of its operating systems, it sometimes gets stuck with macOS. iOS 13.5 went to 13.5.1, for instance, but macOS 10.15.5 was given a “supplemental update” with no change in the official version number.
Luckily, the build number has no such limitation. As you can see in the chart, the daily build number changes for the supplemental updates, enabling you to tell if your copy of macOS has been updated or not. That’s helpful because Apple usually backpatches supplemental updates into the update they address. So if you held off on installing macOS 10.15.5 for a week, by the time you got to it, it would have already included the macOS 10.15.5 Supplemental Update (see “Kernel Vulnerability Causes Apple to Update All Operating Systems,” 1 June 2020). The only way you could tell what you had would be to look at the build number.
|Catalina Supplemental Updates|
|macOS 10.15 Supplemental Update||19A602|
|macOS 10.15 Revised Supplemental Update||19A603|
|macOS 10.15.4 Supplemental Update||19E287|
|macOS 10.15.5 Supplemental Update||19F101|
Extracting Meaning from Build Numbers
As you can see, we can learn useful information from build numbers. For instance, watchOS 1 (12S506) has major build number 12, the same as iOS 8 (12A365), because watchOS 1 is derived from the iOS 8 code base.
We can also tell iOS and iPadOS are built from the same source because they have the same build number (17A577). On the other hand, we can tell tvOS 13 and watchOS 6 are derived from the iOS 13 code base, because they have the same major build number, but are distinct branches, because they have different minor build numbers that aren’t used for iOS, with tvOS starting at J and watchOS starting at R.
Apple isn’t dogmatic about following these rules, or, to put it another way, circumstances sometimes force the company to deviate from its rules. If it had followed past years, iOS 13.1 would have been 17B267, but it was 17A844. This fact probably means that Apple originally thought that iOS 13.1 was going to be iOS 13.0.1, but it ended up containing such important changes that the company decided to increment the minor version number rather than the patch version number.
Last year’s confused iOS release reflects that decision, with Apple releasing iOS 13.0 and promising a quick update to iOS 13.1 with features that weren’t ready at launch (see “Apple to Ship iOS 13 on September 19th, iOS 13.1 on September 30th,” 10 September 2019, and “Features Added in iOS 13.1: Personal Automations, Driving ETA, and More,” 24 September 2019).
Similarly, iOS 13.3 is 17C54 and iOS 13.4 is 17E255—what happened to minor version D? That was assigned to iOS 13.3.1, which has build number 17D50. Presumably, Apple had planned the release that ended up being iOS 13.3.1 to include the many new features in iOS 13.4 but felt a pressing need to push out a quick bug fix update first. In this case, it was to address the privacy concerns surrounding the ultrawideband technology in the iPhone 11 (see “Apple Releases iOS 13.3.1, iPadOS 13.3.1, macOS 10.15.3, watchOS 6.1.2, and tvOS 13.3.1,” 28 January 2020).
There are undoubtedly many other stories behind jumps in build numbers or build numbers that skip around. An apparently missing build might be destined for HomePod, or an unreleased product, or a product only used internally at Apple. But what’s important going forward is that you now know how to find and decode the build number associated with any given operating system release. And with that information in hand, you can draw various conclusions about the release: how much work went into it, whether Apple was taken off guard by some bug report, or just whether or not you’ve actually received a supplemental update.