Supported by Digital Ocean
Sponsor: Digital Ocean

Dream it. Build it. Grow it. Sign up now and you'll be up and running on DigitalOcean in just minutes.

Xcode Now Supports New Hardware Without Needing to Download the Entire App

Xcode 16.2 Release Notes:

Starting with Xcode 16.2, Xcode can add support for new hardware without needing to update the entire Xcode app. Xcode will check when launching the app if a hardware support update is available and will install it. For the equivalent from the command-line, run xcodebuild -runFirstLaunch -checkForNewerComponents.

When there is hardware support available, the installer package will be stored in ~/Library/Developer/Packages, and can be copied for installation and setup purposes for other machines. (138789379)

I vaguely recall seeing mention of this somewhere, but I wasn’t sure it was new, or something I missed from the iPad mini introduction (or earlier). A little birdie tells me it was quietly snuck into Xcode 16.2 in anticipation of the iPhone 16e release.

This will be a massive saving of bandwidth, time, and money. Prior to this feature, every new device Apple released (three to five release cycles a year) required a full Xcode download to support it—a weighty proposition.

Like many of us, as Xcode matured it gained a bit of extra weight each year. An extra SDK or two here, a large serving of simulators there, and before you know it, you’re the heaviest you’ve ever been—10.98GB in Xcode 12.5.1! What happened to the svelte 915MB Xcode 2.3?

In recent years, that initial download was often well over 7GB, even though the actual differences between versions was relatively tiny. It was a real impediment for developers.

Fortunately the Xcode team recognized this and put Xcode on a restrictive diet. They pruned the default install of SDKs and simulators, moving them into optional downloads. That shrank Xcode’s initial install down to a robust-but-healthy 3.01GB today.

This alone is a fantastic improvement worthy of praise, but it still meant downloading 3+GB every time Apple released a new iPhone or iPad or Mac.

This new feature reduces that download to 46.8MB.

Screenshot of the Component window in Xcode 16.2 highlighting “Device Support for iPhone 16e - 48.6MB”
Supporting the latest iPhone 16e doesn’t need a 3GB download! Huzzah!

Astounding.

I have several friends who work (or worked) on Xcode and related tools, and I’m very proud of them for shrinking it back down to a manageable size over the last few years.

I’m especially in awe of what was surely an extensive cross-functional effort that went into building, testing, and quietly releasing this new feature in a public release of Xcode (all the while crossing their fingers that folks like Steve Troughton-Smith didn’t notice it ahead of time, I presume!).

My heartfelt congrats to the teams!

Allow me to claim a tiny sliver of credit here. In 2020, Xcode 12 weighed in between 9GB and 11GB. It was the height of the pandemic—and also in the midst of worldwide protests over the murder of George Floyd . I was talking with a lot of developers who suddenly found themselves working from home on slow, bandwidth-constrained connections, often with overage charges—assuming they even had home internet. It was in that environment that I wrote a bug entitled “Xcode and OS downloads are extraordinarily large, impacting less privileged developers.”

I don’t recall exactly what I wrote. I was probably quite overwrought. I may have suggested alternative distribution methods (like Apple Stores). My bug (rdar://66608319 for those still on the inside!) wasn’t the only—or even the first—bug to raise the issue, but it resonated with a few well-placed folks, acting as a small extra bit of a motivation over the years for some of the people focused on making Xcode installs smaller. I’m gratified that it was part of a larger push to eliminate barriers to developing on Apple platforms. Small acts can have big impacts.

⚙︎