大多数浏览器和
Developer App 均支持流媒体播放。
-
使用精选集探索和管理 Swift 软件包
无论您是为了团队、出于教育目的,还是为了与其他开发者共享而编制软件包,Swift 软件包精选集都可以帮助您发现、探索新软件包并将其导入到您的项目中。使用精选集发现 Swift 软件包工作流程的改进,并了解如何管理、创建、签名和共享您自己的 Swift 软件包精选集。
资源
相关视频
WWDC21
WWDC19
-
下载
♪ ♪ 欢迎收看本场讲座 “使用集合探索与收录Swift软件包” 我们在Xcode 11中引入了 对Swift软件包的支持 提供简单明了的方法 将资源库作为源代码进行分发 当越来越多软件包发布出来 我们希望探索软件包时 符合特定用例的能更易于访问 添加软件包到项目时 开发者也会想要看到 更多信息 像是他们的许可证 为此 我们需要一个标准化方法 来访问元数据 因此 在Xcode 13 我们引入软件包集合 精选出可以和他人分享的软件包列表 这带来了全新的体验 改善了 将软件包添加到项目的流程 教育家和网络红人 都可以发布软件包集合 和课程资料或博客帖子结合使用 消除第一次使用软件包的障碍 不用烦恼哪个软件包比较适合 某个特定的任务 企业可以使用集合 替内部的工程团队缩小决策空间 聚焦在一套可信任、过审的软件包 先快速概述本次的谈话内容 我们一开始先做个演示 再细看要如何使用集合 我们接着会创建出自己的集合 最后再以另一个演示作结 我找到一篇关于 Swift Numerics的博客帖子 等不及拿到Xcode上试试看了
我把帖子里的第一个例子复制下来 切换到Xcode的页面
把代码粘贴上去 这边出现了构建失败 是因为Numerics模块 不存在我的项目中 以前 我就必须回到那篇帖子 思考要怎么把Numerics软件包 添加到我的项目 但在Xcode 13 我们提供了 一套默认集合的 开源软件包 所以编辑器里 直接有个Fix-It工具
如果我点击“搜索” 我就会来到“添加软件包”的 工作流程页面 Numerics已经预先选取好了 许多软件包的相关信息 都能在Xcode看到 像是最新版本 作者 许可证 以及README文件 我们也可以切到“版本历史”标签 来看所有可用版本的更新说明
要添加依赖项 我们可以挑选版本要求 以及要加入的项目 我接受这两个默认选项 并点击“加入软件包”
软件包签出后 Xcode从现有版本中 提出这些产品选项 我选Numerics产品 添加到这一个目标 再次点击“添加软件包” 就能完成步骤
若我们看看项目导航器 就能在那看到新的依赖项 若我们执行构建 就能看到这个项目现在可以成功构建 我们快速看一下在项目中 “添加软件包”工作流程 带来哪些改变 首先 我们打开项目编辑器
选取项目 打开“Swift软件包”标签 这里 我们可以看到依赖项 还有版本规则
如果我们打开目标编辑器 看看“框架、资源库 和嵌入式内容” 我们可以看到Numerics产品 已经链接在这里 这就是Xcode新增的 “添加软件包”工作流程 那么 Xcode是怎么知道软件包的? Xcode预先设置有默认集合 内含一整套由Apple发布的 开源软件包 像是 Swift Argument Parser 以及Swift NIO 在Xcode上就更能无缝使用这些项目 像是提供自动完成模块名称 以及添加软件包的Fix-It工具 通过集合信息就能进行修复 这个默认集合会定期更新 所以软件包的实际列表也会改变 接下来就让我的同事法兰契斯科 告诉你更多使用集合的方法 谢谢你 鲍里斯 通过import语句直接导入 软件包真是毫不费力 我们来更进一步了解集合是什么 集合是JSON文件 一般是通过HTTPS来提取 集合内包含有一列表的软件包URL 和它们的元数据 包括摘要、版本以及已买出产品 这些丰富的信息就能 在Xcode上显示 这是一个集合中的JSON文件片段 您通常不会看得那么详细 但我们来看几个重要字段 我们可以看到软件包的URL README文件的URL 摘要 以及更多详细信息 关于这个软件包的版本 Swift软件包管理器 我们现在常缩写为“SwiftPM” 负责管理您的Mac上的缓存集合 数据库 意思是您若想要存取您已设置的集合 可以通过任何使用 libSwiftPM的工具 不只是Xcode而已 包括命令行上的SwiftPM SwiftPM是Swift 更大的开源项目的一部分 Swift.org网站是个很棒的地方 您可以在那了解这个社区 以及参与的流程
SwiftPM提供了自己的功能 作为资源库 包括对集合的支持 我们称这个资源库为libSwiftPM 它也能在Xcode中驱动软件包 鲍里斯和我正在为我们的网站 写一篇博客帖子 我们打算拿帖子中使用的软件包 创建一个集合 我们的读者才可以遵循 谢谢 法兰契斯科
我们喜欢用Alamofire发起网络请求 所以我们把它添加到集合中 此外 我们也想让项目的格式 有一致性 所以我们会使用 swift-format 已经知道集合里想放哪些软件包后 我们就接下去创建它吧
为了创建集合 我们先在Github 发布一个工具 您可以在本地克隆并构建工具 以发布自己的集合 生成器将创建集合的流程简单化 可以自动收集信息 也能根据最新版本 产生所需的格式输出 在这个工具中输入JSON文件 即拥有可选元数据的软件包列表 就会产生一个输出文件 将可以和他人分享
还有另一个用来对集合签名的工具 也是同个Gibhub项目的一部分 对您的集合签名不是必要 但它能对作者进行验证 并保护集合的完整性 这就是JSON文件输入的格式 这里有关于整个集合的元数据 像是概述、关键词和作者信息 把集合添加到Xcode后 就会显示这些信息 还有最重要的 软件包URL列表
这个工具会自动提取 各个软件包的信息 但在创作一个集合时 您也可以为各个软件包 提供其他的元数据 包括可以改进搜索结果的元数据 像是自定摘要或关键词 限制集合可以表示的版本 排除产品 这可以用来 将用户引导到软件包所供应的 最相关的产品 以及指定README文件的URL 分发基于JSON文件输入的集合 是个三步骤的流程 首先 我们使用生成器 来创建一个JSON文件的输出 接着 我们把这个输出 签名密钥、以及证书 创建成一个有签名工具的已签名集合 最后 我们就能分发这个已签名集合 通过直接分享 或是放到一个web服务器上 您可以对您的集合签名 使用任何有效的、未过期的 未吊销的代码签名证书 想了解更多关于这些要求的信息 请查阅SwiftPM文档 如果您不想对集合签名 使用生成器工具后便可以直接分发 但我和法兰契斯科创建的这个集合 我们打算对它签名
我已经准备好签名文件 以及我们在前面的幻灯片 看到的JOSN输入文件 我也下载并构建了生成器和签名工具 我们先运行代码 package-collection-generate
输入JSON文件 还有输出路径
我们要传入verbose 以取得信息性的输出 也要传入GitHub auth-token
才能向GitHub API查询更多元数据 可以看到这个命令签出了不同版本的 软件包来收集信息 这应该要花几秒钟 完成后 它会生成一个输入文件 接着 我们想要对集合签名 我们运行这条命令 package-collection-sign 传入刚刚生成的JSON文件 指定输出路径
我们也传入稍早导出的 密钥和证书
我已经把生成的集合上载到 一个服务器 我们来看看如何使用命令行 来和它互动 SwiftPM带来一个子命令 叫“package-collection” 来执行这件事 首先 我们将集合添加到 已设置集合的列表 就能让它适用于Xcode
子命令完成提取并添加集合 当然您也可以在Xcode的UI下执行 法兰契斯科稍后会为您演示 接着 我们来看看内容 使用swift package-collection describe
首先看到这个元数据 是我们稍早指定的 我们取得集合内的软件包列表 最后 是签名信息 显示对这个集合签名的人 也显示这个签名通过SwiftPM验证 这可以用来确定 给定集合是不是 由你认为的人所创建 同时也能保护集合的完整性 避免被修改 接着 我们来看看个别软件包 像是swift-format 我们再次使用到describe命令 这次传入的是软件包的URL
在这个命令的输出中 我们看到整个软件包的信息 像是可用版本 作者、星数、README文件URL 还有关于最新版本的详细信息 包括正在使用的Swift工具版本 以及模块和产品 确定我们的新集合看起来没问题后 我要把它寄给我的同事法兰契斯科 他会向您展示更多的Xcode体验 完成我们的演示app 谢谢你 鲍里斯 我刚为我们的演示app 创建一个新项目 要将我们的新集合添加到Xcode 首先要导航到“文件” “添加软件包” 然后点击“+”按钮 来添加集合 我可以把集合的URL粘贴上去 点击“加载”后 Xcode告诉我里面包含多少软件包 还有最近一次更新日期 点击“添加集合”后 我们可以看到软件包: Alamofire和swift-format 我想使用Alamofire的网络API 所以我将这个软件包添加到项目中 选取Alamofire产品 添加到我唯一的项目 点击“添加软件包”
我们看到Xcode添加了依赖项 现在我们就能回到源文件 开始写代码
我已经使用Alamofire 下载了README文件 我想要解析标记语言 使用Swift-cmark软件包 我们要回到“添加软件包”面板 Xcode 13新增了 软件包选项的快速访问 即通过项目导航器上的快捷菜单 我可以从这里重新打开面板 选取“添加软件包”
我的所有集合都没有Swift-cmark 但还是可以添加 只需要把URL 直接粘贴到搜索栏 我要选择Swift-cmark的 主要版本 并将软件包添加到我的项目中
添加Swift-cmark后 我们就能完成博客帖子上的app了 现在 从互联网使用软件包 是如此简单 我们只要专注写我们的app就好
Xcode 13里面的Swift软件包集合 能帮助您探索新的软件包 创造您自己的集合 允许分享收录的软件包列表 简化了将软件包添加到项目的流程
想了解更多关于软件包的知识 我推荐WWDC19的会话视频 “在Xcode使用Swift软件包” 和“创建Swift软件包” 谢谢您的收看 [音乐]
-
-
7:00 - Simple collection
{ "name": "WWDC21 Demo Collection", "overview": "Packages to be used in our demo app", "keywords": ["wwdc21"], "author": { "name": "Boris Buegling" } "packages": [ { "url": "https://github.com/apple/swift-format" }, { "url": "https://github.com/Alamofire/Alamofire" } ], }
-
7:17 - Complex collection
{ "name": "WWDC21 Demo Collection", "overview": "Packages to be used in our demo app", "keywords": ["wwdc21"], "packages": [ { "url": "https://github.com/apple/swift-format", "summary": "Formatting technology for Swift source code.", "keywords": [“formatting”, "swift"], "versions": ["0.50400.0", "0.50300.0"], "excludedProducts": ["SwiftFormatConfiguration"], "readmeURL": "https://github.com/apple/swift-format/blob/main/README.md" }, { "url": "https://github.com/Alamofire/Alamofire" } ], "author": { "name": "Boris Buegling" } }
-
8:46 - Generating a collection
package-collection-generate --verbose input.json collection.json --auth-token
-
9:30 - Signing a collection
package-collection-sign collection.json collection-signed.json developer-key.pem developer-cert.cer
-
10:15 - Adding a collection
swift package-collection add
-
10:34 - Inspecting an entire collection
swift package-collection describe
-
11:11 - Viewing metadata of the swift-format package
swift package-collection describe https://github.com/apple/swift-format
-
13:07 - ReadMe Request
import Alamofire struct ContentView: View { let readMeURL = "https://raw.githubusercontent.com/apple/swift/main/README.md" var body: some View { Button("Click me!") { AF.request(readMeURL).response { response in debugPrint(response) } } } }
-
-
正在查找特定内容?在上方输入一个主题,就能直接跳转到相应的精彩内容。
提交你查询的内容时出现错误。请检查互联网连接,然后再试一次。