Swift 6 Minimum Requirement for App Store

Good afternoon, all!

I was wondering if there was a timeline for when the App Store and/or TestFlight will drop support for Swift 5?

I know Swift 6 was released last year and historically App Store requires a certain SDK minimum for upload. I was wondering if any SDK update was on the docket that would effectively force applications onto Swift 6?

Looking at past releases, I had estimated mid to late 2026, but I wanted to confirm?

Swift 4

  • Released September 2017
  • Became the default SDK in Xcode 9
  • Strongly "encouraged" via the iOS 12 SDK in late 2018
  • Essentially "required" by early 2019

Swift 5

  • Released March 2019
  • Became the default SDK in Xcode 10.2
  • Strongly "encouraged" via the iOS 12.1 SDK in early 2019
  • Essentially "required" by late 2020

Swift 6

  • Released June 2024
  • Became the default SDK in Xcode 16
  • Strongly "encouraged" via the iOS 18 SDK in April 2025
  • **Essentially "required" by mide-late 2026 ?? **

Thank you in advance!

That seems a reasonable guess.

So it's time to prepare: https://wwdcnotes.com/documentation/wwdcnotes/wwdc24-10169-migrate-your-app-to-swift-6/

While I can't predict the future or comment on anything future looking, I'd like to color in some details of the complier so you have a more complete understanding of how things work, in hopes that you can use this information to inform your own decisions around adopting Swift 6.

If you take a look at the Xcode support page and look at the table of Xcode versions, you'll notice the Swift column has two sets of data — the complier version, and language modes.

As you stated, Swift 6 was released with Xcode 16, and you can see that in the version number of the complier in the chart. Every Xcode release has one version of the Swift complier, and so that means every app that has compiled with Xcode 16 or newer has already compiled with the Swift 6 complier.

Your question here is better stated as what is the longevity of the Swift 5 language mode? The language mode (which you'll find in your project as the SWIFT_VERSION build setting) is the version of the language the compiler is using for its compilation rules — things like syntax changes as the language evolves, and of course the concurrency safety features that are the significant advancement added by Swift 6. You can see from the support page's chart that every version of the Swift 6 compiler as of Xcode 26 still supports the Swift 4 language mode — Swift 4, Swift 4.2, Swift 5, and Swift 6 to be complete. This means that libraries written with Swift 4 paradigms in mind continue to compile without requiring source code changes in Xcode 26, even with the Swift 6 compiler. Further, the purpose of language modes is to give libraries time to look at how they can move forward to use new Swift features over time.

While I know this doesn't answer your direct questions since I can't discuss the future, I hope you find pulling apart the distant levels here helpful.

— Ed Ford,  DTS Engineer

Swift 6 Minimum Requirement for App Store
 
 
Q