核心摘要: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
注意事项
- 版本要求:必须使用 Swift 6.1.1 (Xcode 16.4) 或更高版本。
- 缓存清理:首次启用该功能前,建议彻底清理旧的构建缓存,否则可能无法立即生效:
- Xcode:
Product->Clean Build Folder,建议手动删除DerivedData。 - CLI: 删除项目根目录下的
.build文件夹。
- Xcode:
- 网络环境:预构建的二进制文件需要在解析 Package 时下载,请确保网络环境能够访问苹果的 CDN 或相关的镜像源。
效果对比
启用预构建后,编译自定义宏项目由数十秒缩短至几秒,极大提升构建体验。