Platform Support

Swift can be used on different platforms. The information below documents the current level of support for each platform.

Each Swift platform is categorized based two categories:

  • Deployment and Development: Swift programs can be built to run on this platform and the development tools for Swift — such as the Swift compiler — also run on this platform.

  • Deployment-only: Swift programs can be built to run on this platform, but the development tools themselves that build those programs may not themselves run on this platform.

The current set of supported platforms for development and deployment are described below.

Deployment and Development

These are the platforms one can use for Swift’s development tools. This table shows which platforms you can target when the tools are used on a given platform. For example, the tools on macOS can build Swift applications that run on iOS.

Platform running development tools Deployable targets
macOS Apple platforms
Ubuntu Ubuntu
CentOS CentOS
Amazon Linux Amazon Linux
Red Hat Universal Base Image Red Hat Universal Base Image
Windows Windows

Minimum deployment version

This table shows the minimum OS version for which a Swift application can be deployed. For example, a Swift application can run on iOS 7.0 or later, but not iOS 6.

Platform running Swift application Minimum deployment version
macOS 10.13
iOS 11.0
watchOS 4.0
tvOS 11.0
Ubuntu 18.04
CentOS 7
Amazon Linux 2
Red Hat Universal Base Image 9
Windows 10.0

Development Tools

The Swift compiler and debugger run on platforms supporting development. Support for the Swift Package Manager and SourceKit-LSP are currently supported on most, but not all platforms that support the tools. This table provides the current breakdown of what tools are available on what platforms.

Platform running development tools Swift Package Manager SourceKit-LSP
macOS
Ubuntu
CentOS
Amazon Linux
Red Hat Universal Base Image
Windows

Deployment-only

Each platform that supports running Swift applications is required to provide documentation for getting started. The documentation should contain information for installing Swift, using the REPL, using the Swift Package Manager and using the Debugger. Every platform is expected to have core runtime, Standard Library support, and core libraries, except where explicitly documented otherwise.

The table below list the available capabilities on each platform for running Swift applications:

Platform running Swift application Debugger REPL
macOS
iOS  
watchOS  
tvOS  
Ubuntu
CentOS
Amazon Linux
Red Hat Universal Base Image
Windows  

Platform Owners

Support for developing and running Swift applications on various platforms is supported by different members of the Swift open source community. Each platform has a champion, called a platform owner, that acts as the primary steward of maintaining support for a given platform.

Platform owners help facilitate contributors to the Swift project to collaborate and continue to work towards progressing a given platform. These individuals would also be able to guide porting specific changes on the platform. Platform owners have sections on forums.swift.org and meet bi-weekly to discuss active development and open issues on the platform.

Current Platform Owners

  Getting Started Toolchain Provider Pull Request Testing Required
Apple platforms Docs Apple Inc.
Linux Docs Apple Inc.
Windows Docs Apple Inc.
  • Apple platforms includes macOS, iOS, tvOS, and watchOS.
  • Linux includes Ubuntu, CentOS, Amazon Linux and Red Hat Universal Base Image platforms.

Continuous Integration for Platforms

Continuous integration is a critical aspect of maintaining the health of the Swift project. Pull requests support (and for officially supported platforms) require builds and test to pass prior to the pull request being merged.

Pull request testing hardware for a given platform are provided by various members of the community. Platform owners are responsible for monitoring continuous testing for main and release branch on Swift Community-Hosted CI or separate continuous integration systems. Platform owners are responsible for providing or securing the hardware to support continuous testing on Swift Community-Hosted CI.

Code Signature for Downloadable Builds

Platform owners will build and sign the toolchain before providing it to Apple. Apple will then re-sign the toolchain under swift.org certificate and distribute it on the website. The builds will only be re-signed if they are not built by Apple. There will be random audits to validate the signatures between both the platform owners and Apple.

Platform Review

Swift community members can propose adding new platforms to the tables by requesting a review on forums.swift.org. The Swift Core team will review such proposals.