2003 – 2026
Xcode Versions
Every public release of Xcode — Xcode 1.0 in October 2003 through the current line — with the minimum supported macOS to install, the bundled Swift version, the iOS / iPadOS / macOS / tvOS / watchOS / visionOS SDK set, and the current App Store submission floor. Each cell is a floor, not a target: the least you have to upgrade to keep building and submitting. Plus the NeXT lineage, the Xcode 4 unified-window era, the Swift open-source moment, the Apple Silicon transition, and Apple’s App Store submission-floor enforcement pattern.
Xcode × Min macOS × Swift × iOS SDK × App Store floor — minimum supported
Each row is one Xcode release; each cell in the macOS, Swift, and SDK columns is the minimum supported version for that Xcode — what you need to install, what it bundles, what it builds against. Higher versions in the same major line generally work; lower versions don’t. Read it as a floor: the macOS upgrade is often the binding constraint (older Macs can’t run the latest macOS), so the right answer when an upgrade forces your hand is usually to satisfy the floor and stop.
Which release a cell dates. Every row’s date is the day that Xcode reached public Stable release — not the day of its first beta, and not the day of its release candidate. (Xcode 27 makes the gap visible: the RC and the shipping build are both 27A266a, seeded September 9 and released September 14, 2026. This page dates the release.) For every closed line, the Min macOS and Swift cells state what Apple shipped at that major’s initial x.0 release. The current line (Xcode 27) is the exception: its Min macOS and Swift cells track the latest point release, because that is the Xcode you would actually install today — and with only 27.0 shipped so far, the two conventions currently coincide on that row. Both numbers move inside a line more often than you would expect — Apple has raised the minimum macOS at a point release, and has shipped a new Swift minor at a point release, in many majors — so where either moved, the row body names the point release that moved it. The iOS SDK column is a major-version column on every row, current line included: Xcode 26 reads 26 even though its last point release, 26.6, bundles the iOS 26.5 SDK, and the exact per-point-release SDK set lives in the row body rather than the cell. Treat a cell as the entry point to its row, not as a statement about every build in the line.
Xcode
Min macOS
Swift
iOS SDK
Notable
Xcode
6.4
27
Current Stable, and the first Apple-silicon-only Xcode. Swift 6.4; SDKs for all six platforms at 27. Minimum macOS stays inside the
previous line, at Tahoe 26.6 — it does not require macOS 27. Above the App Store floor, which is still
Xcode 26.
- Shipped September 14, 2026, build 27A266a. Apple’s releases feed lists
Xcode 27 (27A266a) that day, alongside iOS 27, iPadOS 27, macOS 27, tvOS 27, watchOS 27, and visionOS 27 — the whole cluster on one date. Note that the release candidate seeded five days earlier, on September 9, carries the same build number; the RC and the shipping build are the same bits, and this row dates the release.
- Bundled Swift 6.4 and the full 27 SDK set, in Apple’s own words: “Xcode 27 includes Swift 6.4 and SDKs for iOS 27, iPadOS 27, tvOS 27, watchOS 27, macOS 27, and visionOS 27” (Xcode 27 release notes). Apple names the bare minor here, not a patch, so the Swift column reads 6.4 and stops there. The Swift project has not yet published its own
Announcing Swift 6.4 post — as of September 15, 2026 swift.org/blog/swift-6.4-released/ is a 404 and a forum search for that announcement returns only the “Swift 6.4 Release Process” thread — so there is no second vendor to pin an exact patch against yet, and this cell is unlinked because the sibling Swift Versions page carries no 6.4 row to anchor into.
- The first Xcode that will not install on an Intel Mac. Apple’s release notes put it in one line — “Xcode 27 will only install and run on Apple silicon Macs” — and the same notes drop
x86_64 from ARCHS_STANDARD for anything deploying to macOS 27.0 or DriverKit 27.0. Intel survives as a target and not as a host: “The macOS 27 SDK supports back deploying Universal (Intel and Apple Silicon) apps to macOS 12 and later,” x86_64 can be put back into ARCHS by hand, and “Intel development is still possible with macOS versions that support Rosetta like macOS 27.” See the Apple Silicon transition section for how that lines up with Apple’s Rosetta end-of-life dates.
- Minimum macOS Tahoe 26.6 — “Xcode 27 requires a Mac running macOS Tahoe 26.6 or later.” Apple’s security-releases list states the same floor against the September 14 entry. Worth noticing what that floor is not: Xcode 27 does not require macOS 27. It requires a late point release of the previous major, so a Mac that can still run Tahoe but cannot take macOS 27 can still install this Xcode. It is also two point releases higher than the beta seeds asked for — those required Tahoe 26.4 — so a Mac that ran the Xcode 27 beta may still need a macOS update before it takes the release.
- The on-device debugging floor moves for the first time in two majors. Xcode 27 “supports on-device debugging in iOS 17 and later, tvOS 17 and later, watchOS 10 and later, and visionOS” — Xcode 26 still reached back to iOS 15, tvOS 15, and watchOS 8. Instruments moves with it: “Instruments now requires target iOS, watchOS and tvOS devices with versions of at least iOS 17, watchOS 10, or tvOS 17.” If you maintain a device lab, that is the cell to read before upgrading.
- Headline additions, per the release notes: Google Gemini joins the coding assistant’s model choices; agent planning becomes first-class, with plans surfaced as editable Markdown artifacts you review and approve before the agent proceeds; and Device Hub adds network pairing for iPhone, iPad, and Apple Watch running 27 or later, so watch and phone pairing no longer needs a cable.
- Above the App Store floor, and on track to become it. The enforced floor is still Xcode 26 / the iOS 26 SDK, since April 28, 2026. Apple’s September 9, 2026 post announced that “Starting April 2027” uploads must use the iOS 27 & iPadOS 27, tvOS 27, visionOS 27, or watchOS 27 SDK or later — the Xcode that supplies all of them is this one. That requirement has not yet appeared on Apple’s Upcoming Requirements list, so it is announced rather than enforced, and this row carries no floor marker yet.
Xcode
26
App Store MinThe App Store submission floor. The unified-version-26 jump alongside macOS, iOS, iPadOS, watchOS, tvOS, visionOS. Superseded by
Xcode 27 on September 14, 2026, so these cells are now the x.0 figures; the line’s last release is
26.6 (June 25, 2026, build 17F113), which needs macOS Tahoe 26.2 and carries Swift 6.3.
- App Store submission floor as of April 28, 2026. Apps uploaded to App Store Connect must be built with Xcode 26 or later using an SDK for iOS 26, iPadOS 26, tvOS 26, visionOS 26, or watchOS 26. Below-floor submissions are rejected at upload time with no in-IDE warning. The floor this replaced was Xcode 15 with the iOS 17 / iPadOS 17 / tvOS 17 / watchOS 10 SDK, enforced since April 29, 2024 — Apple’s Upcoming Requirements list shows no Xcode 16 floor in between. See the submission-floor strip at the top of the page for the most recent floor announcement.
- Version-number jump from 16 to 26. Apple unified the version numbers across all of its operating systems and developer tooling on a year-based schema in September 2025 — macOS Tahoe (26), iOS 26, iPadOS 26, watchOS 26, tvOS 26, visionOS 26, and Xcode 26 all ship together as the “26” line, representing the September 2025 through September 2026 release window. The previous Xcode major was 16; there is no Xcode 17 through Xcode 25.
- Bundled Swift across the 26.x line, in Apple’s own words, note by note: Xcode 26 and 26.0.1 both say “includes Swift 6.2”; 26.1.1 says “includes Swift 6.2.1”; 26.2 and 26.3 both say “includes Swift 6.2.3”; and 26.4, 26.4.1, 26.5, and 26.6 each say “includes Swift 6.3”. That is all nine notes Apple has published in this line. So Apple opened it with a bare minor (6.2, at 26.0 and again at 26.0.1), named an exact patch on every note from 26.1.1 through 26.3, then went back to the bare minor from 26.4 onward — which is why the Swift column above reads 6.3 for this row rather than a patch. (There is no standalone 26.1 note: Apple’s 26.1 release-note page is titled “Xcode 26.1.1 Release Notes.”) One of those Apple numbers is wrong, and the Swift project says so. The 26.3 note repeats 26.2’s “includes Swift 6.2.3” verbatim, but the Swift release announcement for that patch states “Xcode 26.3 contains Swift 6.2.4” (February 27, 2026, the day after Xcode 26.3 shipped). Where the two vendors disagree on a patch, this page follows the Swift project — it is the vendor that builds the compiler, and it names the Xcode outright.
- Where Apple stops naming the patch, the Swift project is explicit — and it names the Xcode. Each Swift release announcement states the pairing outright: “Xcode 26.4.1 contains Swift 6.3.1” (April 17, 2026), “Xcode 26.5 contains Swift 6.3.2” (May 13, 2026), and “Xcode 26.6 contains Swift 6.3.3” (June 30, 2026); Xcode 26.4 shipped with 6.3 itself. The same convention runs back into the 6.2 half of the line — “Xcode 26.3 contains Swift 6.2.4” (February 27, 2026). The announcement dates run later than the Xcode that carries the patch, and that is expected — the Darwin toolchain ships inside Xcode first, and the standalone Linux/Windows package plus the announcement follow days afterward. A later date on swift.org is therefore not evidence that an Xcode predates the patch it contains. There was no Swift 6.1 phase anywhere in the 26.x line. Apple Silicon native, and still installable on Intel Macs — the 26.x line is the last one where that is true, now settled rather than forecast: Xcode 27 shipped on September 14, 2026 and will only install on Apple silicon. See the Apple Silicon transition section.
- Minimum macOS Sequoia 15.6 at 26.0, holding through 26.0.1, 26.1.1, 26.2, and 26.3 — that is the figure the cell above carries, now that this is a closed line; Xcode 26.4 raises the floor to macOS Tahoe 26.2, which 26.4.1, 26.5, and 26.6 (June 25, 2026) all inherit unchanged, so a Sequoia Mac tops out at Xcode 26.3. Bundled SDKs stayed at iOS 26.5, iPadOS 26.5, tvOS 26.5, watchOS 26.5, macOS 26.5 Tahoe, and visionOS 26.5 through 26.6 — the SDK set did not bump with this point release. Apple’s Xcode 26.6 release notes enumerate all six platforms, matching the 26.5 notes exactly. Apple’s own docs contradict each other here, so read the Xcode note and not the OS note: the macOS 26.6, iOS & iPadOS 26.6, tvOS 26.6, watchOS 26.6, and visionOS 26.6 release notes each say “The SDK comes bundled with Xcode 26.6” — which would imply a 26.6 SDK set. The dates settle it: those OS versions shipped July 27, 2026, a month after Xcode 26.6 shipped on June 25 (build 17F113, never re-released) — and the same “comes bundled with Xcode <same minor>” sentence appears verbatim in the 26.5 OS notes, so it is templated boilerplate about version pairing, not a claim about what Xcode 26.6 actually contains.
- Continued Apple Intelligence framework expansion; on-device predictive code completion improvements; Liquid Glass UI integration on Tahoe. 26.5 coding-assistant improvements: message queuing while the agent works, clarifying-question prompts before the agent commits to a plan. Xcode also supports interacting with code using the large language model of your choice, including the coding models and agents of Anthropic and OpenAI. 26.6 (June 25, 2026, build 17F113) adds Google Gemini as a coding-assistant model choice, Agent Client Protocol support, and Preview Snapshot MCP tool rendering for light/dark, portrait/landscape, and type-size variants, plus agent-reliability and accessibility fixes — per the Xcode 26.6 release notes.
- This is the App Store submission floor. As of April 28, 2026, Xcode 26 (with the iOS 26 / iPadOS 26 / tvOS 26 / visionOS 26 / watchOS 26 SDK) is the smallest move that satisfies the floor — the earlier Xcode 15 / iOS 17 SDK floor no longer passes upload. Free to use; later 26.x point releases, and Xcode 27, are fine for submission too. Re-verified current as of September 15, 2026 via developer.apple.com/news/upcoming-requirements, which still reads “Since April 28, 2026” and still has nothing queued above it. A successor floor has been announced, though — just not on that page. Apple’s September 9, 2026 news post puts the iOS 27 / iPadOS 27 / tvOS 27 / visionOS 27 / watchOS 27 SDK requirement at “Starting April 2027,” which is the announcement stage rather than the enforcement stage; this row keeps the marker until that date arrives. Note also that Apple’s entry for the current floor is titled “SDK minimum requirements,” not “Xcode 26” the way every superseded entry is titled after its Xcode; searching that list for a version number will miss it.
Xcode
18
Swift 6 strict concurrency by default. Apple Intelligence framework APIs; on-device predictive code completion. Never an App Store floor of its own — below the current floor since April 28, 2026.
- Never an App Store submission floor. Apple’s Upcoming Requirements list runs straight from the Xcode 15 / iOS 17 SDK floor (since April 29, 2024) to the Xcode 26 / iOS 26 SDK floor (since April 28, 2026) — no Xcode 16 requirement was ever enforced. Builds from Xcode 16 are below today’s floor and are rejected at upload. See the submission-floor strip at the top of the page for the current floor.
- Bundled Swift 6.0 at 16.0 — but the Swift minor moved inside the line too. Strict concurrency checking is the default for new projects; existing projects can opt back into the Swift 5 language mode. Xcode 16.3 picks up Swift 6.1 (March 2025) — the Swift project states it outright: “Swift 6.1 is included in Xcode 16.3” (swift.org) — and 16.4 carries it forward. Apple’s own Xcode 16.x release notes never open with an “includes Swift N” sentence at all, so the Swift project is the authority for this pairing. Apple has switched that convention on and off. The Xcode 14 notes do open with it (“Xcode 14 includes Swift 5.7 and SDKs for…”, and 14.3 with Swift 5.8); Apple then dropped the Swift version from the opening sentence for the whole of the 15.x and 16.x lines, and resumed it with 26.x. So “Apple doesn’t name the Swift version” is a per-line fact, never a general one — check the note.
- Minimum macOS Sonoma 14.5 at 16.0 — but the floor moved inside the line, so Sonoma only carries you to 16.2. Apple’s notes require macOS Sequoia 15.2 or later for 16.3, and Sequoia 15.3 through macOS Tahoe 26.1 for 16.4 — the rare case where Apple states an upper bound as well as a lower one. Apple Silicon native and Intel Universal binary.
- Bundled SDKs: iOS 18, iPadOS 18, macOS 15 Sequoia, tvOS 18, watchOS 11, visionOS 2.
- Apple Intelligence APIs (Writing Tools, Image Playground, Genmoji) integrate at the framework level.
- Predictive code completion carries a second floor, a whole macOS major above this row’s. Apple’s Xcode 16 release notes say it is “powered by a machine learning model specifically trained for Swift and Apple SDKs” and that it “requires a Mac with Apple silicon, running macOS 15.” So Sonoma 14.5 installs Xcode 16 but does not get the feature, and an Intel Mac never does. The same notes add that it is “not supported when running Xcode in a Virtual Machine,” and the model downloads separately the first time you enable it. Apple states no RAM figure anywhere in the 16.x notes — compatibility tables that quote one are not quoting Apple.
Xcode
17
App Store floor from April 2024 to April 2026. Macros. The visionOS SDK ships in 15.2. Simulator runtimes leave the installer.
- Swift 5.9 with macros, at 15.0. Compile-time code generation via the
@freestanding / @attached macro system; SwiftSyntax-driven. The Swift minor then moved inside the line: Xcode 15.3 (March 2024) ships Swift 5.10, the final 5.x — Apple’s 15.3 release notes reference “Swift 5.10 closes all known holes in the static data-race safety model under complete concurrency checking,” and 15.4 carries it forward.
- Minimum macOS Ventura 13.5 at 15.0 — the first Xcode major whose x.0 requires Ventura, though Apple had already dropped Monterey one major earlier, mid-line, at Xcode 14.3. Ventura then tops out at 15.2 — Apple’s 15.3 notes require macOS Sonoma 14 or later, and 15.4 carries that forward.
- Bundled SDKs at 15.0, in Apple’s own enumeration: iOS 17, iPadOS 17, tvOS 17, watchOS 10, and macOS Sonoma. The visionOS SDK arrives with Xcode 15.2 (December 2023) — Apple’s 15.2 notes list it without a version number, simply “visionOS”; the first numbered visionOS SDK in an Xcode list is visionOS 1.1, in the 15.3 notes. Tables that write “visionOS 1.0” against 15.2 are supplying a number Apple didn’t.
- The download shrank because the simulator runtimes came out of it — but Apple never published a number. Xcode 15 installs without the platform simulator runtimes; you fetch the ones you need afterward, which is the machinery behind fixes like “Xcode isn’t offering the latest iOS simulator runtime for downloading when an older one exists” in the 15.1 notes. The percentage figures that circulate for the shrink are not Apple’s: the Xcode 15 release notes state no download size at all. So this row names the change and not a size.
- Was the App Store submission floor from April 29, 2024 to April 28, 2026. Apple’s requirement read: apps uploaded to App Store Connect must be built with Xcode 15 for iOS 17, iPadOS 17, tvOS 17, or watchOS 10. That floor stood for two years — the longest single-floor stretch of the modern pattern — and was superseded directly by Xcode 26 / iOS 26 SDK. Xcode 15 builds are now rejected at upload.
Xcode
16
Xcode 14.1 was the App Store floor from April 2023 to April 2024. Lock screen widgets. if let shorthand. Single-target watchOS app template.
- The App Store floor that Xcode 15 replaced, and it was pinned at 14.1, not 14.0. Since April 25, 2023, iOS and iPadOS apps had to be built with Xcode 14.1 and the iOS 16.1 SDK or later, and watchOS apps with Xcode 14.1 and the watchOS 9.1 SDK or later; tvOS came under the same floor on July 31, 2023 with the tvOS 16.1 SDK. Superseded on April 29, 2024. Both entries are still listed on Apple’s Upcoming Requirements page, which is the full record of every floor Apple has enforced.
- Bundled Swift 5.7 at 14.0 — and the minor moved inside the line. Headline language addition:
if let foo shorthand instead of if let foo = foo; regex literals. Xcode 14.3 (March 30, 2023) picks up Swift 5.8 — Apple states it outright in the 14.3 release notes (“Xcode 14.3 includes Swift 5.8 and SDKs for iOS 16.4…”), and the Swift project agrees (“The Swift 5.8 compiler is also included in Xcode 14.3,” swift.org). Apple even names the patch one release later — the 14.3.1 notes open “Xcode 14.3.1 includes Swift 5.8.1” — so patch-level precision in an Xcode note is an old habit of Apple’s, not a 26.x-era innovation.
- Minimum macOS Monterey 12.5 at 14.0 — the first Xcode major whose x.0 requires Monterey, though Apple had already dropped Big Sur one major earlier, mid-line, at Xcode 13.3. The floor then moved inside this line too — Apple’s 14.3 notes require macOS Ventura 13.0 or later, so Monterey tops out at Xcode 14.2.
- Bundled SDKs at 14.0: iOS 16, iPadOS 16, tvOS 16, watchOS 9, and macOS Monterey 12.3 — the macOS 13 Ventura SDK arrives with Xcode 14.1, per Apple’s release notes for both releases.
- Single-target watchOS apps. Apple’s Xcode 14 release notes: “Xcode 14 includes a default template for watchOS apps that combines the WatchKit App and WatchKit App Extension targets into a single Watch App target, simplifying code, asset, and localization management. You can deploy single-target watchOS apps to watchOS 7 and later.” That is a project-structure change — one target instead of two — and it is the only watchOS structural change any Xcode 14 note credits to this release. Nothing in the Xcode 14, 14.1, 14.2, 14.3, or 14.3.1 notes uses the word “independent” about a watchOS app; a Notable cell that reads “watchOS app independence” against this row is describing a different feature.
- Lock Screen widgets and Live Activities ship as iOS 16 features.
- Final “legacy” build system removed; new build system has been default since Xcode 10 (2018).
Xcode
15
Async / await. Actors. Xcode Cloud preview.
- Swift 5.5 with structured concurrency.
async/await, actors, Task, async let, @MainActor — the watershed concurrency release for Swift. That is the 13.0 number; Xcode 13.3 moves the line to Swift 5.6 (the Swift project: “Swift 5.6 is also included in Xcode 13.3”), and Apple’s own 13.3 release notes carry a Swift 5.6 section.
- Minimum macOS Big Sur 11.3 at 13.0, a half-step up from the plain Big Sur 11 that Xcode 12.5 had required. The floor then moved inside the line — 13.1 and 13.2 still take Big Sur 11.3, and Xcode 13.3 requires macOS Monterey 12 or later, so Big Sur tops out at Xcode 13.2.
- Bundled SDKs at 13.0: iOS 15, iPadOS 15, tvOS 15, watchOS 8, and macOS Big Sur 11.3 — the macOS 12 Monterey SDK arrives with Xcode 13.1, per Apple’s release notes for both releases.
- Xcode Cloud ships in beta — Apple’s hosted CI/CD service tied into the Xcode and App Store Connect workflow. Generally available with Xcode 14.
- The end of the line for notarizing Mac software. Easy to conflate with the App Store submission floor, and separate from it: since November 1, 2023, Apple’s notary service has refused uploads from the
altool command-line utility or from Xcode 13 and earlier — you notarize with notarytool, or from Xcode 14 and later. Software notarized before that date kept working. It is the one Xcode-versioned requirement on Apple’s Upcoming Requirements list that is not an App Store submission floor, which is why it doesn’t appear in the strip at the top of this page.
Xcode
14
Apple Silicon transition. Universal 2 binaries. SwiftUI App lifecycle.
- First Apple Silicon Universal 2 binary. Xcode 12 produces Universal 2 binaries that bundle Intel x86_64 and arm64 slices for the Apple Silicon transition. Note the ramp: Apple’s Xcode 12.0 release notes still say it “requires an Intel-based Mac running macOS Catalina 10.15.4 or later” — running Xcode natively on Apple Silicon came with the 12.2 release alongside the first M1 Macs (cross-link: the Mac page’s Apple Silicon transition section).
- Bundled Swift 5.3 — multi-pattern catch, Swift Package Manager resources, multiple trailing closures.
- Minimum macOS Catalina 10.15.4 at 12.0, and 12.1 through 12.4 all inherit it unchanged — Xcode 12.5 (April 2021) raises the floor to macOS Big Sur 11, so Catalina tops out at Xcode 12.4. (12.0 and 12.1 word the requirement as an Intel-based Mac; 12.2 drops that qualifier, which is the same release that made Xcode itself native on Apple Silicon.)
- Bundled SDKs at 12.0: iOS 14, iPadOS 14, tvOS 14, watchOS 7, and macOS Catalina 10.15.6 — the macOS 11 Big Sur SDK arrives with Xcode 12.2 (November 2020), per Apple’s release notes for both releases.
- SwiftUI 2.0 ships with the SwiftUI App lifecycle, replacing AppDelegate-based scaffolding for new apps.
Xcode
13
SwiftUI launches. Combine. Mac Catalyst.
- SwiftUI launches. Apple’s declarative UI framework, modeled on React; immediately becomes the strategic future for Apple platforms.
- Bundled Swift 5.1 at 11.0 — opaque return types (
some View) and property wrappers (@State, @Binding) ship together to enable the SwiftUI design. Per the Swift project, “Swift 5.1 ships as part of Xcode 11”; the minor then moves inside the line, with Xcode 11.4 carrying Swift 5.2.
- Combine — Apple’s reactive-streams framework, ships as the SwiftUI data-flow companion.
- Mac Catalyst ships as the iPad-app-on-Mac bridge.
- Minimum macOS Mojave 10.14.4 at 11.0, and it holds through 11.3 — Xcode 11.4 (March 2020) raises the floor to macOS Catalina 10.15.2, so Mojave tops out at Xcode 11.3. Bundled SDKs at 11.0, in Apple’s own enumeration: iOS 13, macOS Catalina 10.15, watchOS 6, and tvOS 13. Note what is not on that list: iPadOS. iPadOS 13 was announced as its own OS name in June 2019, but Apple’s Xcode 11.0 release notes never name an iPadOS SDK. It arrives inside this same line rather than the next one, in two steps: the 11.3 notes (December 2019) say Xcode “supports developing apps for iOS 13.3, iPadOS 13.3, tvOS 13.3, watchOS 6.1, and macOS Catalina 10.15.2,” and the 11.4 notes put it in the SDK sentence proper — “includes SDKs for iOS 13.4, iPadOS 13.4, tvOS 13.4, watchOS 6.2, and macOS Catalina 10.15.4.” Compatibility tables that add “iPadOS 13” to the 11.0 row are back-filling from the branding, not quoting Apple.
Xcode
12
New build system default. Dark Mode (macOS Mojave). Create ML.
- Bundled Swift 4.2 at 10.0 (“Swift 4.2 ships as part of Xcode 10,” per the Swift project); new build system becomes default. The line then carries the biggest mid-line Swift jump on this page: Xcode 10.2 ships Swift 5.0 — the ABI-stability release — and raises the minimum macOS to 10.14.3.
- Dark Mode rendering for Mojave-targeted apps; Create ML for on-Mac model training.
- Minimum macOS High Sierra 10.13.6.
Xcode
11
Wireless device debugging. Refactoring engine rewrite. ARKit / Core ML.
- Bundled Swift 4.0 at 9.0; refactoring engine rewritten on top of SourceKit. The minor moved inside the line: Xcode 9.3 (March 2018) ships Swift 4.1 — the Swift project says so outright, “For development on Apple’s platforms, Swift 4.1 ships as part of Xcode 9.3” (swift.org), and 9.4 / 9.4.1 carry it forward. Apple’s Xcode 9.x notes never open with an “includes Swift N” sentence, so the Swift project is the authority for this pairing.
- Wireless device debugging over the network (no more Lightning cable for run/debug).
- ARKit and Core ML APIs ship as iOS 11 features.
- Minimum macOS Sierra 10.12.6 at 9.0 — and this is the one cell in the column Apple no longer publishes. The floor moved inside the line, and Apple’s archived notes are revised forward rather than versioned: the live copy reads “Xcode 9 requires a Mac running macOS 10.13.2 or later,” with SDKs for iOS 11.4, watchOS 4.3, macOS 10.13, and tvOS 11.4 — all of which are the 9.4.1 numbers, not the 9.0 ones. The “New Features in Xcode 9” article that would carry the 9.0 sentence (the way the surviving Xcode 7, 6, and 5 articles do) returns 404. So 10.12.6 stands here on an archived capture of a page Apple has since overwritten, not on anything you can fetch from Apple today. Same shape one row down at Xcode 8.
Xcode
10
Swift 3 source-incompatible reset. Source Editor Extensions. Plugins deprecated.
- Bundled Swift 3.0 at 8.0 — the deliberate source-incompatible reset that cleaned up the Swift API guidelines for the open-source era. Massive migration cost; the last major source-break in Swift’s history. The minor then moved inside the line: Xcode 8.3 (March 2017) ships Swift 3.1, per the Swift project — “For development on Apple’s platforms, Swift 3.1 ships as part of Xcode 8.3” (swift.org), which also notes that Xcode 8.3 carries the 3.0→3.1 source migrator.
- Source Editor Extensions ship as the supported plugin successor. Third-party Xcode plugins are deprecated — the long-running Alcatraz / XVim / Backslash community pivots out of the IDE itself.
- Minimum macOS El Capitan 10.11.5 at 8.0. Bundled SDKs: iOS 10, macOS 10.12 Sierra, tvOS 10, watchOS 3. The floor moved inside this line as well — Apple’s notes for the last release read “Xcode 8.3.3 requires a Mac running macOS 10.12 or later,” with SDKs for iOS 10.3.1, watchOS 3.2, macOS 10.12.4, and tvOS 10.2 — so El Capitan tops out at Xcode 8.2.1. As with Xcode 9, 10.11.5 is the 8.0 figure and Apple no longer publishes it: 10.12 is all that survives in the live archive, the “New Features in Xcode 8” article is a 404, and third-party compatibility tables are the only place the 8.0 number still appears.
Xcode
9
Free on-device deployment without paid account. tvOS launches.
- Bundled Swift 2.0 at 7.0 —
guard, defer, do/try/catch error handling, protocol extensions. The minor moved inside the line: Apple’s own New Features in Xcode 7 credits Xcode 7.3 with “Swift 2.2 … improved warnings and diagnostics, improved compile times, updated features and improved interoperability with Objective-C.”
- Free on-device deployment ships — you no longer need a $99/year Apple Developer Program membership to install apps on your own device for testing.
- Bundled SDKs at 7.0, in Apple’s wording: watchOS 2.0, iOS 9, and OS X 10.11. The tvOS SDK is not in that set — it arrives with Xcode 7.1 (October 2015), which in Apple’s wording “adds support for developing on new iOS devices and the new Apple TV” — the 4th-generation Apple TV, shipping that same month. By the end of the line, Apple’s 7.3 / 7.3.1 notes read iOS 9.3, watchOS 2.2, OS X 10.11.4, and tvOS 9.2.
- Minimum OS X Yosemite 10.10.4, in Apple’s wording: “Xcode 7 requires a Mac running OS X version 10.10.4 or later.” Third-party compatibility tables widely list 10.10.5 for this row instead — that number tracks the later 7.1 point release rather than 7.0, and Apple’s own documentation never states it as an Xcode requirement. The floor then jumped a whole major inside the line: Xcode 7.3 requires OS X 10.11 El Capitan or later, so Yosemite tops out at Xcode 7.2.1.
Xcode
8
Swift 1.0 launches. Playgrounds. WatchKit (6.2).
- Swift 1.0 ships alongside Xcode 6 — Chris Lattner’s long-running internal project (started 2010) becomes a public language. Closed-source at this stage; open-sourced in December 2015.
- Playgrounds ship — the live-execution Swift workspace that became Apple’s teaching environment.
- WatchKit — not a “watchOS SDK,” which did not exist yet — ships in Xcode 6.2, ahead of the Apple Watch launch. Apple’s wording, in the archived Xcode release notes: “Xcode 6.2 adds support for iOS 8.2, including developing Apple Watch apps with the new WatchKit framework.” The watchOS name (and a real watchOS 2.0 SDK) arrives a year later with Xcode 7.
- Minimum macOS Mavericks 10.9.4, and the bundled SDK set at 6.0 is OS X 10.9 and 10.10 plus iOS 8 — Apple: “Xcode 6 requires a Mac running OS X version 10.9.4 or later or 10.10. It includes SDKs for OS X version 10.9 and 10.10, and iOS 8.” That sentence describes the line, not the first build: Apple’s own per-release list is narrower — “Xcode 6.0 includes SDKs for OS X version 10.9, iOS 8” and “Xcode 6.1 adds the SDK for OS X version 10.10” — the same one-point-release macOS SDK lag that Xcode 12, 13, and 14 all repeat later. The Swift minor moved twice inside this line, and Apple states each bump in a different archive. Swift 1.1 arrives with Xcode 6.1: the archived Xcode release notes carry an “Xcode 6.1 → New Features → Swift Language” entry that reads, in full, “Xcode 6.1 includes Swift 1.1.” It is still 1.1 at 6.2 — the same page labels the migrator’s starting point “Swift 1.1 (Xcode 6.2).” Then Xcode 6.3 adds “support for iOS 8.3, Swift 1.2” along with that migrator. Worth knowing which archive answers which question: the “New Features in Xcode 6” article credits 6.1 only with the OS X 10.10 SDK and “Swift language development for OS X,” so reading that article alone makes 6.1’s Swift bump look like something Apple never published.
Xcode
—
7
iOS 7 redesign era. Auto-Configuration of code-signing identities. Bots / Continuous integration.
- iOS 7 SDK ships alongside the iOS 7 redesign — the largest iOS visual reset of the platform’s first decade (cross-link: iOS 7 row on the iOS Versions page).
- Auto-Configuration of code-signing identities — reduces the certificate-and-provisioning-profile churn that had plagued earlier versions.
- Xcode Server / Bots ship as the first Apple-hosted CI option (later superseded by Xcode Cloud in Xcode 13).
- Objective-C only at this stage; Swift wouldn’t arrive until Xcode 6 (September 2014).
Xcode
—
4
Unified-window IDE. Interface Builder integrated. LLVM compiler.
- Unified-window IDE. Interface Builder integrated into Xcode itself, ending eight years of Xcode-and-Interface-Builder as separate apps. Workspace concept ships. Controversial at launch — longtime developers found the unified UI cluttered — but became the structural foundation for every Xcode release since.
- LLVM becomes the default compiler, replacing GCC. Clang front-end becomes the default for Objective-C.
- Apple Developer Program required to download (briefly). Xcode 4.1 was the first free download for Lion users.
- Minimum macOS Snow Leopard 10.6.6 — the Mac App Store floor of the day, which is how Xcode 4.0 was distributed. Apple publishes nothing you can check it against: the archived New Features in Xcode 4 article is still online, but its content starts at Xcode 4.1 and it carries neither the requirement sentence that the surviving Xcode 5, 6, and 7 articles all have, nor any iOS SDK statement for 4.0 — so this row’s iOS SDK cell is unsourced for the same reason. Same shape as Xcode 8 and 9, one era earlier.
Above this line: the Unified era — single-window IDE, Interface Builder integrated, LLVM/Clang default, March 2011 onward. Below: the NeXT lineage era — separate Interface Builder window, Project Builder DNA from NeXT, GCC compiler default, October 2003 through 2010.
Xcode
—
2–4
First iOS SDK (iPhone OS 2). Refactoring. Snapshots.
- First iPhone SDK ships inside Xcode 3.1 — as a free public beta on March 6, 2008, then GA that July alongside iPhone OS 2 (cross-link: iPhone OS 2 row). Announced at Apple’s iPhone Software Roadmap event that March, not at WWDC.
- First refactoring tools; project Snapshots; static analyzer integration.
- Xcode 3 ran on Leopard (10.5) and Snow Leopard (10.6) through 2010; succeeded by Xcode 4 in March 2011.
Xcode
—
—
Universal binary support for the Intel transition. Core Data.
- Universal binary support ships in Xcode 2.1 (2005) for the PowerPC→Intel transition (cross-link: the Mac page’s Intel transition section).
- Core Data ships as the recommended object-graph and persistence framework.
- Minimum macOS Tiger 10.4.
Xcode
—
—
First Xcode release. Replaces Project Builder. PowerPC era.
- First Xcode release, replacing Project Builder — the IDE Apple inherited from NeXT in the 1996 NeXT acquisition (cross-link: the Mac page’s NeXT acquisition section).
- Ships with Mac OS X Panther 10.3 (October 2003). PowerPC architecture only at this stage.
- Carbon and Cocoa toolchains both supported.
- Xcode 1.0 was the rebrand; the codebase had been Project Builder for several years before that.
Each row anchors as #xcode-N (e.g. #xcode-26, #xcode-16, #xcode-12). Each cell in the macOS, Swift, and SDK columns is the minimum supported version for that Xcode — the floor for that row. Higher versions in the same major line generally work; lower versions don’t. The macOS upgrade is often the binding constraint: older Macs that can’t run a newer macOS can’t install a newer Xcode either, period. The row marked with the amber left edge and the App Store Min badge in its Notable cell is the additional App Store submission floor — the lowest Xcode that produces an acceptable submission today. Anything below the line gets rejected at upload. Check developer.apple.com/news for the most recent floor announcement; this matrix is refreshed quarterly with a tighter sub-cadence on the floor row.
The NeXT lineage and Project Builder origin
Xcode is genuinely old. Its codebase descends from Project Builder, the IDE that shipped on NeXTSTEP starting in 1989, written by NeXT to bootstrap its own NeXTSTEP and OPENSTEP applications. Project Builder paired with Interface Builder (separate app, built around the same idea of editable interface freeze-dries that the Mac OS classic Resource Editor pioneered) to form the canonical NeXT developer toolchain. When Apple acquired NeXT in December 1996 — the deal that returned Steve Jobs to Apple and seeded what would become Mac OS X — Project Builder and Interface Builder came along for the ride.
Through Mac OS X Cheetah (March 2001) and through Jaguar (August 2002), Project Builder + Interface Builder were the official toolchain on the new platform. Cocoa apps were built in Project Builder; Carbon apps could use it too via the C-bridged toolchain. Xcode 1.0 in October 2003 was the rebrand that signaled Apple’s ownership of the IDE direction. Project Builder went away as a name but its DNA carries forward through every Xcode release since — the project file format (.xcodeproj), the build-settings inheritance model, the workspace concept, the way targets composed into products. (Cross-link: the Mac page’s NeXT acquisition section.)
Interface Builder remained a separate app for almost another decade. It only merged into Xcode itself with Xcode 4 in March 2011 — the unified-window era that has held since.
Xcode 4 and the unified-window era (March 2011)
Xcode 4 was contentious. The redesign collapsed the multi-window NeXT-lineage IDE into a single unified workspace window, integrated Interface Builder directly into the same window, and reorganized the navigation panes around a left-rail navigator + right-rail inspector model. Longtime developers who had learned Project Builder + Interface Builder as separate apps over the previous decade found the new unified UI dense and unfamiliar. The release was widely, if grudgingly, taken as a step backward in the short term and a foundation in the long one.
The long term argued for the redesign. Every Xcode release since 2011 has built on the unified-window foundation. The single-window architecture made possible the Assistant Editor, the unified Build Settings inspector, the Issue Navigator, the integrated Source Control UI, and most recently the embedded SwiftUI Preview canvas. Splitting any of those across multiple top-level windows would have produced a worse experience.
Xcode 4 also flipped two compiler defaults that mattered structurally: LLVM became the default compiler toolchain (replacing GCC, which had been the BSD/Mach default since the OPENSTEP era), and Clang became the default Objective-C front-end. Chris Lattner had brought LLVM into Apple in 2005; by Xcode 4 it was the toolchain. The investment in LLVM as a platform — rather than a one-off C compiler — is what made Swift (announced 2014, open-sourced 2015) implementable inside Apple at all. (Cross-link: the Swift Versions page on Lattner’s lineage.)
The iPhone SDK and the App Store-shaped Xcode
The iPhone shipped in June 2007 with no official third-party SDK; Apple’s public position at launch was that web apps in mobile Safari would be the third-party developer story. The reversal came on March 6, 2008, at the iPhone Software Roadmap event, where Apple previewed iPhone 2.0 and announced the immediate availability of the iPhone SDK beta — and with it the App Store, the Apple Developer Program, and the entire ecosystem that has shaped Xcode releases ever since. (This is often misremembered as a WWDC announcement; WWDC 2008 came three months later, in June.) That beta SDK shipped as Xcode 3.1; Xcode 3.1 GA followed alongside the App Store launch in July 2008. (Cross-link: the iOS Versions page’s App Store launch section.)
Every Xcode release from 3.1 onward is shaped by the iPhone (and later iPad / Apple Watch / Apple TV / Vision Pro) SDK release cycle far more than by the Mac SDK cycle. A new Xcode in September every year tracks the September iOS release; the macOS release in October usually fits inside the same Xcode major. The iOS-shaped cadence has held for nearly two decades.
Swift — closed in 2014, open in 2015
Swift launched at WWDC 2014 — closed-source at first, bundled inside Xcode 6, designed by Chris Lattner’s team. Apple positioned it as the eventual successor to Objective-C; the immediate effect was a confusing 2014–2016 period when the same project might have a mix of Objective-C source files (.m), Swift source files (.swift), and bridging headers connecting them.
In December 2015, Apple open-sourced Swift — including the compiler, standard library, REPL, and Swift Package Manager — under the Apache 2.0 license. The Swift project moved to open evolution through the Swift Evolution process, with formal SE-NNNN proposals reviewed by a community-and-Apple committee. (Cross-link: the Swift Versions page’s open-source section.)
The deliberate Swift 3 source-incompatible reset shipped with Xcode 8 (September 2016) — cleaning up the Swift API guidelines for the open-source era, reformulating naming conventions, and breaking source compatibility one last time before committing to the long-term backwards-compat guarantee. Subsequent Xcode releases have bundled the matching Swift major: Swift 4 with Xcode 9, Swift 5 with Xcode 10.2 (with ABI stability), Swift 5.5 (concurrency) with Xcode 13, Swift 6 (strict concurrency default) with Xcode 16.
The Apple Silicon transition (Xcode 12, 2020)
Apple announced the Apple Silicon transition at WWDC 2020 and shipped the first M1 Macs in November 2020. Xcode 12 was the bridge release: it ran natively on Apple Silicon (arm64) Macs and on Intel (x86_64) Macs, and its build output was the new Universal 2 binary format that bundles both arm64 and x86_64 slices into a single executable.
Universal 2 echoed the original Universal binary format from Xcode 2.1 (2005) — that one bridged the PowerPC→Intel transition. The architectural pattern is identical: Apple ships a transition Xcode that can build for both architectures, gives developers a 2–3 year window to migrate, and then drops the older architecture from the bundled SDK once the migration is complete. The end of the Intel side of that window is no longer a forecast. Xcode 26 still installs and runs on Intel Macs; Xcode 27, which shipped on September 14, 2026, does not. Apple’s Xcode 27 release notes say it in one line — “Xcode 27 will only install and run on Apple silicon Macs” — and the same notes drop x86_64 from ARCHS_STANDARD for anything deploying to macOS 27.0 or DriverKit 27.0, so those targets stop building Universal by default. Intel as a target outlives Intel as a host: the macOS 27 SDK still back-deploys Universal binaries to macOS 12 and later, x86_64 can be added back to ARCHS by hand, and the same notes add that “Intel development is still possible with macOS versions that support Rosetta like macOS 27.”
Three separate clocks ran out this fall, and Apple’s own posts compress them into one sentence often enough to be worth untangling. (1) Intel as a development host ended with Xcode 27, above. (2) Intel as a machine that runs macOS ended with macOS 26 Tahoe: macOS 27 installs only on Apple silicon — every Mac on Apple’s compatibility list for the September 14 macOS 27 release is an Apple silicon model, and the September 9, 2026 developer post states it outright: “macOS 26 is the final release supporting Intel Mac computers and Rosetta — macOS 27 will be Apple silicon only.” (3) Rosetta, the translation layer that lets an Intel binary run on an Apple silicon Mac, ends one release later. On September 1, 2026 Apple published Upcoming changes to Rosetta support for Intel-based macOS apps, which is the more specific source and says: “macOS 27: Final release to support Rosetta — Intel-only apps will no longer run on Mac computers with Apple silicon after this update,” with a carve-out for older, unmaintained gaming titles that depend on Intel-based frameworks. Users on macOS 26.4 and later already see a system notification when they launch an app that relies on translation. So the September 9 post’s “Intel Mac computers and Rosetta” phrasing folds two different deadlines together; the Xcode 27 notes’ own “macOS versions that support Rosetta like macOS 27” is the tell that Rosetta outlives Intel hardware by a release. (Cross-link: the Mac page’s Apple Silicon transition section.)
The Apple Silicon transition also accelerated Xcode-the-product. Compile times improved substantially on M1+; the local on-device debugger workflow got faster; the iOS Simulator got dramatically faster (it now runs as a native arm64 process rather than translated x86_64). Xcode 16’s on-device predictive code completion is only viable because the Apple Silicon NPU and unified-memory architecture make large-model inference cheap on the developer’s own machine.
Xcode Cloud (2021–)
Xcode Cloud shipped in beta with Xcode 13 (2021) and reached general availability with Xcode 14 (2022). It’s Apple’s hosted CI/CD service, integrated with Xcode and App Store Connect: pushed branches trigger builds, build results render inside Xcode itself, and successful builds can flow directly into TestFlight and App Store submissions. The service replaced the older Xcode Server / Bots feature (which had shipped in Xcode 5 and stagnated through the 2010s) with a fully managed alternative. Adoption has been measured — teams using GitHub Actions, Bitrise, or Circle for cross-platform CI tend to stay on those rather than fragmenting their pipeline — but for iOS-only shops, Xcode Cloud is now the default Apple-recommended CI path.
The App Store submission-floor pattern
Apple periodically announces a submission-floor change — a date after which an upload has to be built against a newer platform SDK — on developer.apple.com/news, months ahead of the date the floor takes effect. Two worked examples, and they bracket the notice window rather than confirming a fixed one. The floor in force today was posted as Upcoming SDK minimum requirements on February 3, 2026 for enforcement on April 28, 2026 — just under three months. Its successor was announced much earlier in the cycle: on September 9, 2026, the day the App Store opened for the 27 releases, for enforcement “Starting April 2027” — roughly seven months, and with a month rather than a day attached to it. Plan on months of warning, not on a fixed interval. Submissions below the floor are rejected at upload time with a generic “invalid bundle” error and an opaque support-page link.
Note where the Xcode number actually lives. The announcement itself is phrased purely in SDK terms — “iOS and iPadOS apps must be built with the iOS 26 & iPadOS 26 SDK or later,” then the same line for tvOS, visionOS, and watchOS — and never names an Xcode version at all. The entry Apple keeps afterward on its Upcoming Requirements list does: “built with Xcode 26 or later using an SDK for iOS 26, iPadOS 26, tvOS 26, visionOS 26, or watchOS 26.” So a team that reads only the announcement is left to map SDK versions onto an Xcode version itself — which is the mapping the matrix above exists to supply.
The pattern matters operationally because the failure mode is silent. There’s no in-IDE warning when you build with an Xcode that’s about to fall below floor. There’s no email reminder. The only way to discover that your CI pipeline produces unsubmittable builds is to attempt a submission and have it rejected. Teams whose CI is pinned to a specific Xcode version (and most are, for reproducibility) tend to discover this only when a release blocks at upload time.
The current floor is surfaced in the strip near the top of this page and re-checked whenever Apple announces a change — the floor cell is the most volatile element on the page, so it is verified on a tighter sub-cadence than the rest of the matrix.
The Android-side counterpart
The cascade pattern this page documents — an IDE that pins a minimum OS to install, a bundled language version, a bundled platform SDK, and a downstream submission floor — isn’t Apple-specific. The same shape exists on the Android side, where Android Studio pins a minimum AGP, AGP pins a minimum Gradle and a minimum Kotlin Gradle Plugin, all of them pin a minimum JDK, and Google Play Store has its own target-SDK submission floor that escalates roughly annually. The two stacks differ in their specifics — Android’s split toolchain (Studio is JetBrains-derived, Gradle is independent, Kotlin is JetBrains’ language, JDK is OpenJDK) creates more vendor flexibility but more compatibility surface; Apple’s monolithic toolchain reduces the matrix but makes the macOS upgrade itself the binding constraint — but the mental model is the same: floor not target, do the least you can get away with. (Cross-link: Android Studio Versions.)