Introducing swiftly 1.0

2025年3月28日 Chris McGee Chris McGee 今天,我们很高兴地推出 swiftly 的首个稳定版本,它是一个 Swift 版本管理器,可轻松安装、管理和更新您的 Swift 工具链。

最新版本的 Swift 与 Xcode 捆绑在一起,用于编写 Apple 平台的应用程序。 但是,您可能希望在其他平台(例如 Linux)上安装 Swift,或者使用其他版本的工具链来构建服务或命令行工具。 下载、解压和安装受信任的 Swift 版本,以及操作系统所需的相关依赖项,可能需要大量手动且容易出错的步骤。

swiftly 作为社区支持的工具已经存在多年,供使用 Linux 的 Swift 开发人员使用。 在此版本中,我们正式将其作为核心 Swift 工具链的一部分提供支持,包括将其托管在 Swift GitHub organization 中。 我们还添加了 macOS 支持,以便更轻松地将 Swift 与 Xcode 分开安装。

Introducing swiftly

swiftly 是安装独立工具链的最佳工具,它提供了在新系统上安装 Swift、更新到最新稳定版本以及试验或测试 nightly snapshots 或旧版本的命令。 它还可以轻松地在多个已安装的工具链之间切换。 您甚至可以将文件添加到您的项目存储库中,以便 swiftly 为您开发团队的所有成员使用相同的工具链版本。

自然地,swiftly 本身是用 Swift 编写的,并且能够自行更新到最新版本。

Quick tour

让我们来看看 swiftly 的一些功能!

首先,请访问 swift.org/install 并安装它。

如果在平稳运行新工具链所需的系统包或 shell 命令,swiftly 将在安装后提供指导。

最新的 Swift 工具链作为默认设置安装,因此您可以立即使用它来启动新项目。 例如:

$ swift package init

swiftly use 命令选择 Swift 命令的默认工具链(例如 swift testswift build):

$ swiftly use 6.0.3
$ swift --version
--
Apple Swift version 6.0.3 (swiftlang-6.0.3.1.2 clang-1600.0.28.6)
Target: arm64-apple-macosx15.0

稍后,如果 Swift 有新版本发布,您可以将其与现有工具链一起安装,使用 latest 命令:

$ swiftly install latest

Swift 版本的预发行版可用,包括 nightly “snapshot” 工具链。 可以使用 swiftly 轻松列出它们:

$ swiftly list-available main-snapshot
--
Available main development snapshot toolchains
----------------------------------------------
main-snapshot-2025-03-25
...

一旦您确定了 snapshot 工具链,就可以使用其名称进行安装:

$ swiftly install main-snapshot-2025-03-25
--
Installing main-snapshot-2025-03-25

临时使用特定 Swift 版本的另一种方法是使用特殊的“+”选择器。 使用此语法,您无需先切换到其他工具链:

$ swiftly run lldb +main-snapshot-2025-03-25
--
(lldb) _

如果您在一个团队环境中构建 SwiftPM 项目,并且希望在所有贡献者上强制执行通用版本的 Swift 工具链,只需在项目文件夹的根目录中创建一个 .swift-version 文件,其中包含所需的版本(例如“6.0.3”)。

由于 swiftly 会随着新功能和错误修复进行更新,因此您可以运行 swiftly self-update 来检查和安装新版本。

How swiftly works

通过使用 Swift 编写 swiftly,我们能够利用该语言的功能、支持和相关项目生态系统。 Swift 附带标准库功能,用于在其 Foundation 模块中使用文件系统。 对于网络操作,Async HTTP Client 用于处理 HTTP 请求。 为了检索最新的 Swift 版本,swiftly 使用 Swift OpenAPI 插件来生成代码以与 swift.org 网站交互。 最后,它利用 Swift 与 C 的互操作性来使用现有的 libarchive 库来处理归档文件。 swiftly 使用 libarchive 来提取从 Swift 网站下载的工具链,并且集成很简单。

构建可以在多个平台上良好运行且系统依赖性最小的 shell 程序可能具有挑战性; 这促使我们将 swiftly 从使用 shell 程序安装它转变为自安装二进制应用程序。 swiftly 可以访问出色的参数解析功能、漂亮的 --help 屏幕以及完整的标准库。

唯一剩下的问题是能够以简单的方式将特定于操作系统和处理器架构的二进制文件传递给用户系统。swift.org 网站有助于操作系统检测,但它无法可靠地检测 Linux 发行版。 幸运的是,有 Swift Static Linux SDK 可以制作适用于各种发行版的二进制文件。 处理器架构可以使用 uname -m 在大多数 unix 系统上确定。 所有这些的结果是,您可以简单地从网站复制并粘贴到您的终端并开始使用 Swift。

Installing Swift, swiftly

展望未来,swiftly 将成为在 Xcode 之外安装 Swift 的默认方式。 初始版本支持 macOS 和各种 Linux 发行版,包括 Ubuntu、Debian、Fedora、Red Hat Enterprise Linux 和 Amazon Linux。

swiftly 文档 提供了有关 在 CI/CD 环境中使用 swiftly 的更多信息,以及为企业环境设置代理服务器和自定义安装位置的信息。 swiftly 是一个开源项目,因此您可以在其 GitHub repository 中提出新问题或贡献 pull requests。 您还可以在 Swift Forums 上提问或讨论 swiftly

特别感谢 Patrick Freed 创建 swiftly、将其贡献给 Swift 组织以及他对这个有价值的工具的持续贡献。 社区是让 Swift 变得惊人的原因!

Written by Chris McGee Chris McGee Chris McGee is on the team at Apple working on Swift Package Manager, and Swiftly. How Swift's server support powers Things Cloud Except where otherwise noted, all content on this blog is licensed under a Creative Commons Attribution 4.0 International license. Copyright © 2025 Apple Inc. All rights reserved. Swift and the Swift logo are trademarks of Apple Inc. Privacy Policy Cookies API Color scheme preference Light Dark Auto