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:

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
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.9
iOS 7.0
watchOS 2.0
tvOS 9.0
Ubuntu 16.04
CentOS 7
Amazon Linux 2
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
Windows In development

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
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 Saleem Abdulrasool  

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 master 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.