🔍

Swift 6 编译加速:启用 Swift-Syntax 预构建 (Prebuilts)

(更新于 )

核心摘要:Swift 宏(Macros)的强大依赖于庞大的 SwiftSyntax 库,这往往拖慢了项目的冷启动编译速度。从 Swift 6.1.1 开始,通过启用“预构建(Prebuilts)”功能,可以避免重复编译该库,显著缩短构建时间。

Swift 5.9 引入宏功能后,开发者纷纷开始定制、使用自定义宏以提升开发效率。然而,宏依赖的 SwiftSyntax 库源码庞大,每次清理构建文件夹后重新编译都会消耗大量时间。

Swift 6.1.1 (Xcode 16.4) 起,苹果引入了预构建版本的 Swift-Syntax 支持。开发者只需简单配置,即可直接使用二进制产物,无需从源码编译。

开启方法

1. Xcode 开发环境

在终端执行以下命令,修改 Xcode 的隐藏配置以启用预构建支持:

Bash
# 开启预构建支持
defaults write com.apple.dt.Xcode IDEPackageEnablePrebuilts YES

# 如需关闭,执行以下命令
defaults delete com.apple.dt.Xcode IDEPackageEnablePrebuilts

2. 命令行 (SPM / CI 环境)

如果你在 CI/CD 流水线或终端中使用 Swift Package Manager,请在命令中添加参数:

Bash
swift build --enable-experimental-prebuilts
swift test --enable-experimental-prebuilts

注意事项

  1. 版本要求:必须使用 Swift 6.1.1 (Xcode 16.4) 或更高版本。
  2. 缓存清理:首次启用该功能前,建议彻底清理旧的构建缓存,否则可能无法立即生效:
    • Xcode: Product -> Clean Build Folder,建议手动删除 DerivedData
    • CLI: 删除项目根目录下的 .build 文件夹。
  3. 网络环境:预构建的二进制文件需要在解析 Package 时下载,请确保网络环境能够访问苹果的 CDN 或相关的镜像源。

效果对比

启用预构建后,编译自定义宏项目由数十秒缩短至几秒,极大提升构建体验。

延伸阅读

相关提示

订阅 Fatbobman 周报

每周精选 Swift 与 SwiftUI 开发技巧,加入众多开发者的行列。

立即订阅