17611538698
webmaster@21cto.com

Swift 6.4 统一了在 Linux、macOS 和 Windows 上的构建方式

图片

21CTO 导读:Swift Build 现在是 Swift 包管理器的默认引擎。

Swift 是苹果公司用于 macOS 和 iOS 应用程序开发的主要语言,开源社区也在不断扩大其影响范围,推动其在用户界面设计以外的领域被采用为多平台语言,甚至是跨平台语言。

周二发布的 Swift 6.4 版本延续了这项工作。

除了常见的各种类型快捷键和异步调整之外,苹果还宣布 Swift Build 现在是 Swift 包管理器的默认构建引擎。

带有“Swift 6.4”字样的 Swift 标志

协同效应已经显现——此种组合为更快的构建过程奠定了基础。

开发者可以用 Swift 编写程序,Swift Build 会自动下载并安装所需的依赖项,并进行兼容性测试,然后它会将代码编译成特定于 CPU 的二进制文件。 

此次的合并也统一了Swift开发者在不同平台上的体验。 

通过此种集成,开发者可以在自己的环境中完成整个构建过程,无论是 Apple 的 Xcode IDE 还是他们喜爱的命令行,对于 Linux、macOS 或 Windows 应用程序来说,所有步骤都完全相同。

或者,开发者可以通过 VS Code 运行他们的构建器,这要归功于Open VSX Registry提供的新扩展

更令人惊喜的是,该集成软件包还附带一个工具,可以为每个应用程序生成软件物料清单 (SBOM),并以 SPDX 或 CycloneDX 格式列出所有依赖项 ( SE-0509 )。SBOM 在软件审计和检查潜在安全漏洞方面非常实用。 

Swift 的统一工具链


从技术上讲,Swift 正在效仿 Rust 的 Cargo 和 Go 的命令行工具链,它们都作为统一的工具链运行, JavaScript 的Bun也是如此。一个集成的工作流程可以取代手动逐个调用工具将代码部署到生产环境的做法。

Swift 包管理器( SwiftPM) 由苹果于 2015 年创建,是一款命令行自动化和依赖管理工具。Swift Build 本身是一套可互操作的软件开发工具,它们共同负责代码的编译(使用 swiftc 编译器)、链接和测试。

SwiftPM 可以使用任何 git 存储库作为 Swift 代码的来源,也可以使用 Bitbucket 和 JFrog Artifactory 等私有存储库服务。

最值得一提的是,SwiftPM 与Swift Package Index (SPI)配合良好。SPI 是一个 Swift 组件搜索服务,创建于 2020 年,并于今年 6 月被苹果收购。SPI 目前是许多 Swift 开发者的事实标准仓库,收录了超过 10,400 个软件包。许多人喜欢 SPI 的一点是,它会测试每个依赖项与各个平台和 Swift 版本的兼容性。 

暂时不清楚苹果是否有计划将 SPI 元数据引入 SwiftPM。

不用 SwiftPM 和 Swift Build 的 Swift 程序员可以使用 Google 的 Bazel、Meta 的Buck2或久负盛名的CMake来管理他们的 Swift 资源。 

从源头进行调试


此次版本之更新还简化了构建流程的其他重要部分,比如调试。

在 Swift 6.4 中,默认的 Swift 调试器 LLDB 如今采用了一种更节省存储空间的模块调试方式:它直接识别所用模块的确切路径,而不是像以前那样将整个模块嵌入到调试文件中,从而显著降低了文件体积。

从现在开始,调试器可以跟随指针并检查原始模块。 

该版本还改进了与 C++、Java、JavaScript 甚至WebAssembly的互操作性,WebAssembly 还获得了自己的 SDK。  

想要开始使用 Swift,可以访问其官网的“安装 Swift”页面,也可以使用 Swiftly 命令行下载 6.4 工具链。

作者:场长

参考:

https://www.swift.org/blog/swift-6.4-released

评论

我要赞赏作者

请扫描二维码,使用微信支付哦。

分享到微信