Tom Doron 是 Swift 核心团队和 Swift 服务器工作组的成员。他在 Apple 管理着一个研究服务器端 Swift 库的团队。
在 Swift 5.5 中,Swift 包管理器增加了对包集合的支持——一口大小的包管理列表,使发现、共享和采用包变得容易。
在本文出版时,Swift 5.5 可作为预览版从Swift.org和 Xcode 13 种子中获得。Swift 5.5 将于今年晚些时候正式发布。
包集合的目标是改进包生态系统的两个关键方面:
发现很棒的包裹
确定最适合特定工程任务的软件包
包装系列包含并促进了策展的概念。包集合不是浏览长长的网络搜索结果列表,而是将选择范围缩小到来自您信任的策展人的一小部分包列表。包集合服务于许多用例:例如,我们设想 Swift 开发人员社区发布集合,这些集合反映了这些社区生产和使用的优秀包来处理日常任务。教育工作者还可以使用包集合来聚合一组包以与课程材料一起使用。企业可以使用包集合来缩小其内部工程团队的决策空间,专注于一组可信的经过审查的包。
使用集合
包集合使用起来很简单。您可以使用package-collection addSwiftPM 命令行中的新选项添加它:
$ swift package-collection add https://swiftserver.group/collection/sswg.json
Added "Swift Server Workgroup Collection" to your package collections.
Xcode 13(作为预览版提供)还支持使用新的包集合配置屏幕进行包集合。
集合今天可用!
今天已经有新的包集合可用,我们希望 Swift 社区会出现其他包集合。
Swift 服务器工作组
Swift Server Workgroup(Swift 项目的一部分)发布了一个包集合,其中包含工作组孵化的包。SSWG 合集可在以下位置获得:
https://swiftserver.group/collection/sswg.json
SwiftPackageIndex.com
Swift Package Index网站背后的团队创建了动态生成的包集合的第一个实现。该网站允许您下载包含由包所有者创建的所有包的集合。更多信息可以在网站的收藏页面上找到。
Apple 的 OSS Swift 包
Apple 已经发布了一个包集合,其中包括 Apple 发布的一些令人兴奋的 Swift 包,包括Swift Argument Parser、Swift Algorithms和SwiftNIO。Apple 的系列可在以下位置获得:
https://developer.apple.com/swift/packages/collections/apple.json
Xcode 13 预先配置为使用 Apple 包集合。Xcode 的用户可以立即试用!
滚动你自己的收藏
包集合是简单的 JSON 文档。作为 JSON 文件,它们易于发布和共享。您可以将它们发布到网络(或文件服务器)、共享链接或直接与他人共享 JSON 文件。
创建集合
推荐的方式是使用新的包集合生成器工具。该工具获取包 URL 列表,并通过解析包清单文件并在可能的情况下从 SCM 系统获取元数据为它们生成更完整的元数据集。
鉴于以下 packages.json
{
"name": "My Collection",
"packages": [
{
"url": "https://github.com/user/package.git"
}
]
}
运行以下命令:
$ package-collection-generate packages.json collection.json
将生成一个集合 JSON 文件,如下所示:
{
"formatVersion": "1.0",
"name": "My Collection",
"generatedAt": "2021-06-01T21:28:28Z",
"packages": [
{
"url": "https://github.com/user/package.git",
"versions": [
{
"version": "1.0.0",
"defaultToolsVersion": "5.1.0",
"manifests": {
"5.1.0": {
"packageName": "MyPackage",
"products": [
{
"name": "MyProduct",
"targets": ["MyTarget"],
"type": { "library": ["automatic"] }
}
],
"targets": [
{
"name": "MyTarget"
}
],
"toolsVersion": "5.1.0"
}
}
}
]
}
]
}
就这么简单!
签署收藏
在生成包集合时,可以对它们进行签名以建立真实性并保护其完整性。对集合进行签名是可选的,用户可以使用未签名的集合,但在这样做之前会提示进行确认。
对集合进行签名的推荐方法是使用包集合签名工具,该工具使用代码签名证书对集合进行签名。
例如,使用collection.json我们在上一步中创建的 带有代码签名证书及其私钥的输入,运行以下命令将创建集合的签名版本作为 collection-signed.json文件,将签名嵌入到输出文件本身中。
$ package-collection-sign \
collection.json \
collection-signed.json \
/certs/private.pem \
/certs/signing.cer
您可以在SwiftPM 的主题文档中找到有关生成和签名集合的更多详细信息。
一旦您的收藏准备就绪,您就可以选择如何分发它。对于与学生或一小群合作者共享,将集合作为附件通过电子邮件发送就足够了。博客作者可以选择将其托管在他们的 Web 服务器上并共享链接。大型开发团队可能决定将其推送到他们的 SCM 系统并从那里访问它。
精品教程推荐
加入我们一起学习SwiftUI
QQ:3365059189
SwiftUI技术交流QQ群:518696470
教程网站:www.openswiftui.com