构建系统

构建服务器应用程序的推荐方式是使用 Swift Package Manager。SwiftPM 为构建 Swift 代码提供了跨平台的基础,并且非常适合拥有可以在多个 Swift 平台上编辑和运行的单一代码库。

构建

SwiftPM 可以从命令行工作,并且也集成在 Xcode 中。

你可以通过从终端运行 swift build 命令,或者在 Xcode 中触发构建操作来构建你的代码。

Docker 用法

Swift 二进制文件是特定于架构的,因此在 macOS 上运行构建命令将创建 macOS 二进制文件,类似地,在 Linux 上运行命令将创建 Linux 二进制文件。

许多 Swift 开发者使用 macOS 进行开发,这使得可以利用 Xcode 附带的强大工具。然而,大多数服务器应用程序被设计为在 Linux 上运行。

如果你在 macOS 上进行开发,Docker 是一个在 Linux 上构建和创建 Linux 二进制文件的有用工具。Apple 将官方 Swift Docker 镜像发布到 Docker Hub

例如,要使用最新的 Swift Docker 镜像构建你的应用程序

$ docker run -v "$PWD:/code" -w /code swift:latest swift build

注意,如果你想在 Apple Silicon (M1) Mac 上为 Intel CPU 运行 Swift 编译器,请在命令行中添加 --platform linux/amd64 -e QEMU_CPU=max。例如

$ docker run -v "$PWD:/code" -w /code --platform linux/amd64 -e QEMU_CPU=max swift:latest swift build

上述命令将使用最新的 Swift Docker 镜像运行构建,利用绑定挂载到你 Mac 上的源代码。

调试与发布模式

默认情况下,SwiftPM 将构建应用程序的调试版本。请注意,调试版本不适合在生产环境中运行,因为它们速度明显较慢。要构建应用程序的发布版本,请运行 swift build -c release

定位二进制文件

可以部署的二进制工件位于 Linux 上的 .build/x86_64-unknown-linux 和 macOS 上的 .build/x86_64-apple-macosx 下。

SwiftPM 可以使用 swift build --show-bin-path -c release 命令显示完整的二进制文件路径。

为生产环境构建