平台支持
Swift 可以在不同的平台上使用。以下信息记录了每个平台的当前支持级别.
每个 Swift 平台都根据两类进行分类:
-
部署和开发:可以构建在该平台上运行的 Swift 程序,并且 Swift 的开发工具(例如 Swift 编译器)也可以在该平台上运行.
-
仅部署: 可以构建 Swift 程序以在该平台上运行,但构建这些程序的开发工具本身可能无法在此平台上运行.
当前支持的开发和部署平台集如下所述.
部署与开发
这些是可用于 Swift 开发工具的平台。此表显示了在给定平台上使用这些工具时可以面向的平台。例如,macOS上的工具可以构建在iOS上运行的Swift应用程序.
平台运行开发工具 | 可部署的目标 |
---|---|
macOS | Apple platforms |
Ubuntu | Ubuntu |
CentOS | CentOS |
Amazon Linux | Amazon Linux |
Windows | Windows |
最低部署版本
此表显示了可以部署 Swift 应用程序的最低操作系统版本。例如,Swift 应用程序可以在 iOS 7.0 或更高版本上运行,但不能在 iOS 6 上运行.
运行 Swift 应用程序的平台 | 最低部署版本 |
---|---|
macOS | 10.13 |
iOS | 11.0 |
watchOS | 4.0 |
tvOS | 11.0 |
Ubuntu | 18.04 |
CentOS | 7 |
Amazon Linux | 2 |
Windows | 10.0 |
开发工具
Swift 编译器和调试器在支持开发的平台上运行。目前,大多数(但并非所有)支持这些工具的平台都支持Swift Package Manager 和SourceKit-LSP 。此表提供了哪些平台上可用的工具的当前详细信息.
平台运行开发工具 | Swift 包管理器 | SourceKit-LSP |
---|---|---|
macOS | ✓ | ✓ |
Ubuntu | ✓ | ✓ |
CentOS | ✓ | ✓ |
Amazon Linux | ✓ | ✓ |
Windows | ✓ | ✓ |
仅限部署
每个支持运行 Swift 应用程序的平台都需要提供入门文档。该文档应包含有关安装 Swift、使用 REPL、使用 Swift 包管理器和使用调试器的信息。每个平台都应该有核心运行时、标准库支持和核心库,除非另有明确记录.
下表列出了每个平台上运行 Swift 应用程序的可用功能:
运行 Swift 应用程序的平台 | 调试器 | REPL |
---|---|---|
macOS | ✓ | ✓ |
iOS | ✓ | |
watchOS | ✓ | |
tvOS | ✓ | |
Ubuntu | ✓ | ✓ |
CentOS | ✓ | ✓ |
Amazon Linux | ✓ | ✓ |
Windows | ✓ | ✓ |
平台所有者
对在各种平台上开发和运行 Swift 应用程序的支持得到了 Swift 开源社区的不同成员的支持。每个平台都有一个支持者,称为平台所有者,作为维护对给定平台的支持的主要管家.
平台所有者帮助促进 Swift 项目的贡献者进行协作并继续努力推进特定平台的发展。这些人还能够指导在平台上移植特定的更改。平台所有者在forums.swift.org上设有版块,并每两周举行一次会议,讨论平台上的积极开发和开放的问题.
当前平台所有者
入门 | 工具链提供商 | 需要拉取请求测试 | |
---|---|---|---|
Apple platforms | 文档 | Apple Inc. | ✓ |
Linux | 文档 | Apple Inc. | ✓ |
Windows | 文档 | Saleem Abdulrasool |
- Apple 平台包括 macOS、iOS、tvOS 和 watchOS.
- Linux 包括 Ubuntu、CentOS 和 Amazon Linux 平台.
平台持续集成
持续集成是维持 Swift 项目健康的一个关键方面。拉取请求支持(以及官方支持的平台)要求在合并拉取请求之前构建和测试通过.
给定平台的拉取请求测试硬件由社区的各个成员提供。平台所有者负责监控 Swift 社区托管的 CI 或单独的持续集成系统上的主分支和发布分支的持续测试。平台所有者负责提供或保护硬件以支持 Swift 社区托管 CI 的持续测试.
可下载版本的代码签名
平台所有者将构建并签署工具链,然后再将其提供给苹果。然后,苹果将在swift.org证书下重新签署工具链,并将其分发到网站上。仅当构建不是由 Apple 构建时才会重新签名。将进行随机审核以验证平台所有者和 Apple 之间的签名.
平台审查
Swift 社区成员可以通过在 forums.swift.org 上请求审核来提议在表格中添加新平台。Swift Core 团队将审查此类提案.