Swift and Xcode version compatibility
Xcode 27, 27.1 and 27.2 ship the Swift 6.4 compiler; Xcode 26.4.1 to 26.6 ship Swift 6.3; Xcode 16 was the first to offer the Swift 6 language mode, and every Xcode still offers Swift 5 mode. A Package.swift that declares .iOS(.v18) needs swift-tools-version 6.0, which means Xcode 16 or later. Below: every Xcode from 14.0 with its Swift compiler, language modes, SDKs, minimum macOS and release date; the oldest Xcode for any Swift version; the tools version each platform declaration needs; and a box that tells you what your own xcodebuild -version or swift --version output means.
What do I have?
Paste what Terminal prints for xcodebuild -version or swift --version (or both). Nothing leaves this page.
Paste the output above to see which Xcode or Swift it is.
Pick an Xcode version
What it ships and what it can build, from Apple's table.
- Swift compiler
- 6.4
- Language modes
- 6, 5, 4.2, 4
- SDKs
- iOS 27.2 · macOS 27.2 · tvOS 27.2 · watchOS 27.2 · visionOS 27.2 · DriverKit 27.2
- Runs on
- macOS Tahoe 26.6 or later
- Released
- 29 October 2026
- Package.swift it can read
- swift-tools-version up to 6.4
- Newest platform names it knows
- .iOS(.v27) .macOS(.v27) .tvOS(.v27) .watchOS(.v27) .visionOS(.v27)
- Release notes
- Apple's release notes
Pick a Swift version
The oldest Xcode that has it, and when swift.org announced it.
Oldest Xcode with Swift 6.4: Xcode 27, released 14 September 2026.
Every Xcode in the table with it: Xcode 27, Xcode 27.1, Xcode 27.2.
swift.org announced Swift 6.4 on 15 September 2026. Source
The post does not name an Xcode version.
Which swift-tools-version does my Package.swift need?
Pick a platform declaration. The tools version is the first PackageDescription version that has the name, from Apple's documentation.
.iOS(.v18) needs // swift-tools-version:6.0 or later.
The oldest Xcode in Apple's table with a Swift 6.0 compiler or newer is Xcode 16.
Other manifest settings
| In Package.swift | First tools version | Deprecated in |
|---|---|---|
| swiftLanguageModes: [.v6] | 6.0 | – |
| SwiftLanguageMode.v6 | 6.0 | – |
| .swiftLanguageMode(.v5) | 6.0 | – |
| swiftLanguageVersions: [.v5] | not stated | 6.0 |
| .enableUpcomingFeature("…") | 5.8 | – |
| .enableExperimentalFeature("…") | 5.8 | – |
| .interoperabilityMode(.Cxx) | 5.9 | – |
| traits: [...] | 6.1 | – |
| .defaultIsolation(MainActor.self) | 6.2 | – |
| .strictMemorySafety() | 6.2 | – |
| .treatAllWarnings(as: .error) | 6.2 | – |
Swift 5 and Swift 6 language modes
- Apple's table first lists the Swift 6 language mode for Xcode 16. Every Xcode in the table still lists the Swift 5 mode.
- swift.org's migration guide: "A Package.swift file that uses swift-tools-version of 6.0 enables the Swift 6 language mode for all targets." Source
- To keep a target in Swift 5 mode with tools 6.0, add .swiftLanguageMode(.v5) to its swiftSettings. In an Xcode project the setting is "Swift Language Version" (SWIFT_VERSION).
- swift.org, announcing Swift 6: "Swift 6 now includes a new, opt-in language mode". Source
Xcode and Swift versions
Every row of Apple's "SDK and system requirements" table, newest first. Release dates are from Apple's Releases page. Apple's table · Releases
| Xcode | Swift | Language modes | Released | iOS SDK | macOS SDK | Runs on |
|---|---|---|---|---|---|---|
| Xcode 27.2 27B52 | 6.4 | 6, 5, 4.2, 4 | 29 October 2026 | 27.2 | 27.2 | macOS Tahoe 26.6 or later |
| Xcode 27.1 27A9275 | 6.4 | 6, 5, 4.2, 4 | 15 October 2026 | 27.1 | 27 | macOS Tahoe 26.6 or later |
| Xcode 27 27A266a | 6.4 | 6, 5, 4.2, 4 | 14 September 2026 | 27 | 27 | macOS Tahoe 26.6 or later |
| Xcode 26.6 17F113 | 6.3 | 6, 5, 4.2, 4 | 25 June 2026 | 26.5 | 26.5 | macOS Tahoe 26.2 - macOS Tahoe 26.x |
| Xcode 26.5 17F42 | 6.3 | 6, 5, 4.2, 4 | 11 May 2026 | 26.5 | 26.5 | macOS Tahoe 26.2 - macOS Tahoe 26.x |
| Xcode 26.4.1 17E202 | 6.3 | 6, 5, 4.2, 4 | 16 April 2026 | 26.4 | 26.4 | macOS Tahoe 26.2 - macOS Tahoe 26.x |
| Xcode 26.3 17C529 | 6.2.3 | 6, 5, 4.2, 4 | 26 February 2026 | 26.2 | 26.2 | macOS Sequoia 15.6 - macOS Tahoe 26.x |
| Xcode 26.2 17C52 | 6.2.3 | 6, 5, 4.2, 4 | 12 December 2025 | 26.2 | 26.2 | macOS Sequoia 15.6 - macOS Tahoe 26.x |
| Xcode 26.1.1 17B100 | 6.2.1 | 6, 5, 4.2, 4 | 11 November 2025 | 26.1 | 26.1 | macOS Sequoia 15.6 - macOS Tahoe 26.x |
| Xcode 26.1 17B55 | 6.2.1 | 6, 5, 4.2, 4 | 3 November 2025 | 26.1 | 26.1 | macOS Sequoia 15.6 - macOS Tahoe 26.x |
| Xcode 26.0.1 17A400 | 6.2 | 6, 5, 4.2, 4 | 22 September 2025 | 26 | 26 | macOS Sequoia 15.6 - macOS Tahoe 26.x |
| Xcode 26 17A324 | 6.2 | 6, 5, 4.2, 4 | 15 September 2025 | 26 | 26 | macOS Sequoia 15.6 - macOS Tahoe 26.x |
| Xcode 16.4 16F6 | 6.1 | 6, 5, 4.2, 4 | 28 May 2025 | 18.5 | 15.5 | macOS Sequoia 15.3 - macOS Tahoe 26.1.x |
| Xcode 16.3 16E140 | 6.1 | 6, 5, 4.2, 4 | 31 March 2025 | 18.4 | 15.4 | macOS Sequoia 15.2 - macOS Sequoia 15.x |
| Xcode 16.2 16C5032a | 6.0 | 6, 5, 4.2, 4 | 11 December 2024 | 18.2 | 15.2 | macOS Sonoma 14.5 - macOS Sequoia 15.x |
| Xcode 16.1 16B40 | 6.0 | 6, 5, 4.2, 4 | 28 October 2024 | 18.1 | 15.1 | macOS Sonoma 14.5 - macOS Sequoia 15.x |
| Xcode 16 16A242d | 6.0 | 6, 5, 4.2, 4 | 16 September 2024 | 18 | 15 | macOS Sonoma 14.5 - macOS Sequoia 15.x |
| Xcode 15.4 15F31d | 5.10 | 5, 4.2, 4 | 13 May 2024 | 17.5 | 14.5 | macOS Sonoma 14.x |
| Xcode 15.3 15E204a | 5.10 | 5, 4.2, 4 | 5 March 2024 | 17.4 | 14.4 | macOS Sonoma 14.x |
| Xcode 15.2 15C500b | 5.9 | 5, 4.2, 4 | 8 January 2024 | 17.2 | 14.2 | macOS Ventura 13.5 - macOS Sonoma 14.x |
| Xcode 15.1* 15C65 | 5.9 | 5, 4.2, 4 | 11 December 2023 | 17.2 | 14.2 | macOS Ventura 13.5 - macOS Sonoma 14.x |
| Xcode 15.0.x 15A240d | 5.9 | 5 | 18 September 2023 | 17 | 14 | macOS Ventura 13.5 - macOS Sonoma 14.x |
| Xcode 14.3.1 14E300c | 5.8.1 | 5, 4.2, 4 | 1 June 2023 | 16.4 | 13.3 | macOS Ventura 13.x |
| Xcode 14.3* 14E222b | 5.8 | 5, 4.2, 4 | 30 March 2023 | 16.4 | 13.3 | macOS Ventura 13.x |
| Xcode 14.2 14C18 | 5.7 | 5, 4.2, 4 | 13 December 2022 | 16.2 | 13.1 | macOS Monterey 12.5 - macOS Ventura 13.x |
| Xcode 14.1 14B47b | 5.7 | 5, 4.2, 4 | 1 November 2022 | 16.1 | 13 | macOS Monterey 12.5 - macOS Ventura 13.x |
| Xcode 14.0.x 14A309 | 5.7 | 5, 4.2, 4 | 12 September 2022 | 16 | 12.3 | macOS Monterey 12.5 - macOS Ventura 13.x |
Apple's definition of the Swift column: "The version of the Swift compiler and the supported Swift language mode in this version of Xcode."
Swift releases on swift.org
Release posts on the swift.org blog. Where a post names the Xcode that includes the compiler, its words are quoted.
| Swift | Announced | Xcode named in the post | Oldest Xcode in Apple's table |
|---|---|---|---|
| Swift 6.4 | 15 September 2026 | not stated | Xcode 27 |
| Swift 6.3 | 24 March 2026 | not stated | Xcode 26.4.1 |
| Swift 6.2 | 15 September 2025 | not stated | Xcode 26 |
| Swift 6.1 | 31 March 2025 | Xcode 16.3 “If you're building apps for Apple platforms, Swift 6.1 is included in Xcode 16.3, now available from the App Store.” | Xcode 16.3 |
| Swift 6.0 | 17 September 2024 | not stated | Xcode 16 |
| Swift 5.10 | 5 March 2024 | not stated | Xcode 15.3 |
| Swift 5.9 | 18 September 2023 | Xcode 15 “The Swift 5.9 compiler is also included in Xcode 15.” | Xcode 15.0.x |
| Swift 5.8 | 30 March 2023 | Xcode 14.3 “The Swift 5.8 compiler is also included in Xcode 14.3.” | Xcode 14.3* |
| Swift 5.7 | 12 September 2022 | Xcode 14 “The Swift 5.7 compiler is also included in Xcode 14.” | Xcode 14.0.x |
swift.org's install page offers Swift 6.4.2 on 1 November 2026; Apple's table lists Swift 6.4 for Xcode 27.2. Source
Checked against Apple's and swift.org's pages on 1 November 2026.
How it works
- •Xcode rows come from Apple's "SDK and system requirements" table on its Xcode support page, cell for cell, and release dates from Apple's Releases page. It is the same data as our Xcode SDK requirements page, so the two never disagree.
- •Swift release dates and the sentences naming an Xcode come from the release posts on the swift.org blog. Where a post does not name an Xcode, the page says "not stated" instead of guessing.
- •The tools version for a platform name such as .iOS(.v18) is the "First available in PackageDescription" version on Apple's PackageDescription documentation page for that name.
- •The oldest Xcode for a tools version is the first Xcode whose Swift compiler is at least that version. Apple's documentation defines the tools version as the minimum Swift tools needed to use the package.
- •The version box reads the Xcode and Build lines from xcodebuild -version and the "Apple Swift version" line from swift --version, then looks them up in the table. One row was checked on a real Mac with Xcode 27.1.
- •Checked against Apple's and swift.org's pages on 1 November 2026. We check again when Apple ships a new Xcode.
What it does not do
- •No Xcode before 14.0 and no betas: Apple's table lists neither. Xcode 26.4 is not in Apple's table either (it lists 26.4.1), so it is not here.
- •Swift patch releases on Linux and Windows are not matched to anything; they do not come with Xcode.
- •Cells the sources do not state are left as "not stated", never filled from memory or other websites.
- •It does not read your project, your Mac or your Package.swift. Paste text in; nothing is uploaded.
- •It does not say whether App Store Connect accepts a build. For upload deadlines, see the Xcode SDK requirements page.
FAQ
- Which Swift version comes with Xcode 26 and Xcode 27?
- Per Apple's table: Xcode 26 and 26.0.1 ship Swift 6.2; 26.1 and 26.1.1 ship 6.2.1; 26.2 and 26.3 ship 6.2.3; 26.4.1, 26.5 and 26.6 ship 6.3; Xcode 27, 27.1 and 27.2 ship 6.4.
- Which Xcode do I need for Swift 6?
- Xcode 16 is the first in Apple's table with the Swift 6.0 compiler and the Swift 6 language mode. The mode is opt-in: an Xcode project picks it with the Swift Language Version build setting (SWIFT_VERSION), and a package gets it by default with swift-tools-version 6.0.
- Which swift-tools-version do I need for .iOS(.v18) or .iOS(.v26)?
- Apple's PackageDescription documentation says .v18 was first available in PackageDescription 6.0, .v26 in 6.2 and .v27 in 6.4. The same holds for macOS 15, tvOS 18, watchOS 11 and visionOS 2 (6.0). Write that number, or a higher one, in the // swift-tools-version: line.
- If I raise swift-tools-version to 6.0, does my code switch to Swift 6 mode?
- Yes. swift.org's migration guide says a Package.swift that uses swift-tools-version 6.0 enables the Swift 6 language mode for all targets. To keep a target on Swift 5, add .swiftLanguageMode(.v5) to its swiftSettings, or set swiftLanguageModes for the whole package.
- How do I find out which Swift version I have?
- Run swift --version in Terminal. With Xcode it prints a line like "Apple Swift version 6.4 (swiftlang-6.4.0.34.1 ...)". xcodebuild -version prints the Xcode version and build. Paste either into the box on this page.
- Which macOS do I need for Xcode 27?
- Apple's table says Xcode 27, 27.1 and 27.2 run on macOS Tahoe 26.6 or later. Xcode 26.4.1 to 26.6 need macOS Tahoe 26.2, and Xcode 26 to 26.3 run on macOS Sequoia 15.6 or later.