大多数浏览器和
Developer App 均支持流媒体播放。
-
探索 Xcode Cloud 工作流程
学习 Xcode Cloud 工作流程如何帮助您和您的团队自动构建、分析、测试、存档和部署各个 app 和框架。工作流程灵活、可扩展,可根据您团队的开发和分发流程进行配置。了解 Xcode Cloud 工作流程的基本信息,探究如何进行端到端配置,并查看建议的工作流程,开始使用 Apple 的持续集成系统。为了能充分了解本节内容,我们建议首先观看 WWDC21 的“认识 Xcode Cloud”。
资源
- Configuring your first Xcode Cloud workflow
- Developing a workflow strategy for Xcode Cloud
- Xcode Cloud
- Xcode Cloud workflow reference
相关视频
WWDC23
Tech Talks
WWDC21
-
下载
您好 欢迎来到此议程 我们将讨论Xcode云碟作业流程 我叫贾斯汀 我是TestFlight团队的工程师 我将与我的同事卫斯理和凯文 一起介绍 在Xcode Cloud中创建作业流程的细节 作业流程是Xcode Cloud的核心 也是持续集成的动力 让团队能自动构建版本 分析、测试、归档、分发 您的应用模式与软件框架 作业流程是弹性的、有扩展性的 您可以自定义适合自己团队的作业流程 以既有的开发与分发流程为依据 有了Xcode Cloud以后 作业流程管理可与 您已在用的Apple开发工具整合 也就是Xcode和App Store Connect 这个议程中 我们要将作业流程拆解成特定的组件 首先 我们会介绍如何设置条件 使其自动执行作业流程 然后 我们会说明 环境配置的选择 我们也会演示如何创建多种活动 依您的要求 自动执行任务 例如传送版本的通知 或自动将那些版本部署于TestFlight 最后 我们有些策略 针对不同的作业流程 可用于优化您的团队合作及生产力 我们有很多内容要讨论 那么就开始吧! 现在 我将镜头交给卫斯理
谢谢 贾斯汀 我正在制作的应用程序叫“Fruta” 这是我与开发团队合作打造的 它已上传至Xcode云碟运作中 若您还没看过 “认识Xcode Cloud”议程 记得要去看看 学习如何配置第一个作业流程 已整合于Xcode报告导航器中的这个 是新的Cloud标签 我能在此看到团队的作业流程及版本 我对Fruta应用程序进行内建设定时 它为我构建了一个起始作业流程 并建立了主干 这个作业流程对我们来说运作得很好 但我们是团队 也会用拉拽请求 因此我想创建一个拉拽请求 专用的作业流程 让我的团队利用 我想让它在每次有任何团队成员 创建拉拽请求时 运作、分析、测试、归档应用程序 在拉拽请求建立结束时通知团队 并将应用程序的版本传送给所有团员 这样团员就可以在功能 融合进主要整合分支前 进行测试 创建作业流程很容易 我可以进入“产品”菜单下方的 “管理作业流程” 点击“增加” 选取我的应用程序
这里会出现一个新的作业流程编辑器 作业流程是由好几个可设置的组件 组成的 这是一般区段 我可以在此为作业流程命名 我将它命名为“拉拽请求”
若我的团队中 只有少数人要负责 变更作业流程 我可以选择限制编辑 以免有意料之外的更新影响团队 起始设定中 Xcode云碟利用 我的本地设定知识 设置原始资源库及项目数据 但若我决定移动原始资源库 或将之从Xcode项目移到工作区 我就可以在这里更改设定 接下来 我们来看看 “起始条件”区段 在此我可以定义作业流程执行的时间
Xcode云碟有许多条件类型 以这个作业流程来说 我想将起始条件设为可以执行 所有准备融合进主干的拉拽请求 要做这件事 我可以从“类别”菜单中 将“所有变更”选至“拉拽请求” 这个条件类型让我可以指定 源分支及目标分支
我要将源分支配置至“任何分支” 目标分支配置至“主干”
现在 每当团队成员对主干 创建及变更拉拽请求 Xcode Cloud便自动执行这个作业流程 现在 建立拉拽请求时 Xcode Cloud会构建、测试源分支与 目标分支的融合 因此我的团队成员可以确信 且确切掌握这些变更将对其他成员 造成的影响 我也可以将这些条件 缩减至特定档案或档案夹 也可选择是否将先前作业流程运作时 所执行的任何版本设为自动取消 若我要在快速演替之外再推送提交 这会很有用 “拉拽请求”的每一个“变更”都是 可以用来设置作业流程的起始条件 根据您的团队需求 我们还有其他条件类别 可以设置来对应那些需求 对每个“分支”的 每个“变更”都会建立 源分支 并将忽略任何拉拽请求状态 创建新标签时 每个“标签”的“变更” 都会建立 按照排程 将在您选择的循环排程上 建立一个您选择的分支 若您有长期执行的测试 就太好了 现在 我已配置了起始条件 它决定了工作流程将在何时执行 让我们来配置一下环境区段 它决定了工作流程将如何运作 Xcode Cloud在Apple云碟的 “基础架构”上运作 并提供各种macOS和Xcode版本
要选择Xcode和macOS版本 只需从菜单选取即可 您也可以将作业流程设置为指向 “最新发行版” 或测试版 这样您就始终可以在 最新的软件上构建版本或测试 作为开发人员 我们都非常关心 我们的生产力 而这其中很大一部分 是我们所使用的工具的性能 您们之中许多人将在大型项目中工作 有许多档案 可能得面对漫长的构建时间 就像在Xcode本地一样 您可以选择以递增方式建立变更 只建立已变更的档案 您在Xcode Cloud中也有这个选项 这通常会导致构建更快速 然而 有些时候您只想要执行一个 干净的版本 这很重要 可以确保最终版本的功能皆能运作 而且也得要有这个 才能产生可用TestFlight部署给 “外部Beta测试者”的版本 或提交给App Store 所选择的Xcode进行测试 有个“清除”的选项 由于这是一个拉拽请求的作业流程 我将不勾选它 以便利用性能优势 每个团队都有其独特的作业模式 且团队需要具有灵活性的工具 以便能以他们想要的方式作业 Xcode云碟提供了一些选项来完成 我们认为是最常见的开发任务 然而 它也提供一系列的 扩展性选项 这种扩展性使您能将Xcode云碟与 团队完成业务所用的其他工具和系统 连接起来 Xcode云碟提供一个全面的API 来进入您的数据、配置作业流程 并启动版本 除了Xcode现有的 脚本选项 Xcode还增加了功能 让您可以创建 装置上执行的自定义脚本 能在您的版本和测试的装置上执行 “环境”区段中 我可以指定环境变量 Xcode Cloud使这些环境变量可用于 自定义脚本 这对配置和保密来说很有用 因为我不想在编码资源库中检查
我也能将环境变量标记为保密 以提供额外的保护 您可以在“自定义您的Ydvanced Xcode Cloud作业流程”议程或我们的文档中 找到进一步的信息 目前 我们已向您演示了如何配置 您的作业流程时间以及它们何时执行 它们该在怎样的环境中执行呢? 接下来 我们来谈谈动作吧 动作是用来定义您想要作业流程 每次为您与您的团队执行时 所做的工作 您要求Xcode在本地执行的关键动作 现在都可以在Xcode Cloud中使用 版本构建 执行数据分析 测试 以及归档 我想要设置的动作是“归档” “测试”以及“分析”动作 首先 我们来增加“归档”动作 从“动作”点击加号 然后选取“归档”
我得选择平台与方案 我想为其创建一个归档档案 它已预选了iOS平台 及iOS方案 这正是我要的 我也可以选择注册TestFlight 或将它准备好让App Store销售 但以后会有更多关于这个问题的信息 您可能会注意到我不需要管理 配置文件或编码签名的身份 Xcode Cloud会自动为您处理好 若您对这方面想了解更多 请看“在Xcode中分发应用程序与 云端签名”的议程 既然“归档”动作已经设置好了 让我们来看看“测试”动作 在开发过程中 测试应用程序 是极度重要的一部分 它不仅有助于确保用户 体验到更少的错误 且可以在您所做的变更中给您信心 借此加快开发过程 然而 本地测试的执行 有时会非常窒碍难行 也有时 您就只是忘记了 用Xcode Cloud中的测试设置作业流程 测试得以在稳定、可靠 可复制的环境中执行 当您做其他工作时 它们在后台执行 释放出本地环境 且他们会自动运作 让您无需记得手动执行 要增加“测试”动作 只要点击“增加”按钮 选取“测试”即可
对于“测试”动作 我可以选择让它们 要求通过与否 将该动作标记为要求通过 表示此“测试”失败的话 整个版本构建都会失败 若我正在构建测试套件 我可以选择将其设置为不要求通过 使它不致影响整体构建状态 要选择执行哪些测试时 我有几个选项 我可以选择“使用方案设定” 来参考我的Fruta iOS方案中的设定 或者 若我想磨练某个特定的测试集 我可以选择一个特定的测试计划 设置好了以后 就只需要选择 我想用来执行测试的模拟器了 Xcode云碟提供一个推荐选项 是一系列 屏幕大小各异的模拟器 推荐选项总是对从“环境”区段 所选择的Xcode进行测试 但若我要选择特定模拟器 我也可以从一个较旧的OS版本列表 中选择
我最后要执行的动作 就是“分析”动作 编辑器能够自动发现许多类型的错误 并警告我们注意这些问题 注意并解决这些问题可以省下更多的 开发时间 更甚于在执行期间 追踪这些问题 且会给我们的应用程序用户 一个更稳定 无错的经验 然而 由于执行统计分析 并不属于典型的本地迭代 开发的作业流程 许多人忘了执行这个步骤 眼睁睁看着整个团队的问题越积越多 有了Xcode云碟 您可以确保每次进行编码变更时 都会执行统计分析 要增加“分析”动作 点击“增加”按钮 然后选择“分析”
跟测试一样 我可以选择是否要 将统计分析问题标记为“要求通过” 现在 我只想监测统计分析的结果 因此我不会将它标记为“要求通过”
最后一个动作是“构建”动作 有时 您会需要执行单一的 Xcode构建动作 这也许会对确保某个第二版本配置 或仍可编辑的方案有用处 也可以确保属于应用程序的软件框架 能够自行构建 我已为拉拽请求作业流程将 “归档”、“测试” “分析”动作配置好了 我将交给凯文 为这个作业流程加上Post动作 谢谢 卫斯理 有了Xcode Cloud作业流程 您就能配置Post动作 “构建”、“分析” “测试”、“归档” 一待以上动作完成 就执行Post动作 您可以用Xcode Cloud部署的Post动作 正在传送通知、用TestFlight部署 我们先谈谈通知吧 您有两种类型的通知活动 可以传送 第一种是当版本构建成功时 您可以选择为任何构建成功的版本 传送通知 若有某分支或拉拽请求从版本失败 转换为通过时 可选择修正 也可选择不通知 另一种通知是当版本构建失败时 您可以选择为所有失败的版本 构建传送通知 若有某分支或拉拽请求从版本通过 转换为失败时 可选择破坏 也可选择不通知 对于这个作业流程 我想在拉拽请求 建立完成后通知我的团队 “动作”区段下方是Post动作 要增加“通知”动作 点击“增加”按钮 选取“通知”
我将“全部”留给“版本构建成功” 和“版本构建失败” “通知事件”下方 有几个选项 可以选择在哪传送通知 Xcode Cloud与热门的协作工具Slack 集成 只要Slack授权一个账号 我就可以点击“增加”按钮 叫出一张频道列表
我选择“ci版本频道 然后点击OK
我也可以选择增加电子邮件地址 在初始设定下 所有用户都会自动 收到他们启动的版本的通知 所以您不必将他们加入这张列表 然而 若您有群组信件 或是若有用户想要收到非他们启动的 版本 您可以将他们的电子邮件加在这里 最后 我要跟您分享 Xcode Cloud作业流程功能中我的最爱 之一 那就是可以自动与TestFlight部署 现在 有了Mac上的TestFlight 您可以将其部署到每一个Apple平台 Xcode Cloud 有两个TestFlight部署选项 给内部测试人员的部署已加强 可以快速将版本传送给 您的开发团队成员 由于他们是您的团队成员 他们可以收到 从拉拽请求生产的版本 以及没有选择“清除”的版本 今天若您用TestFlight 外部测试和App Store 就如您已知的一样 被推荐用于候选分支和发行版分支 且可以发布给 外部测试人员和App Store 须经测试版应用程序审查 TestFlight是个很好的途径 能将应用程序的版本 送到您团队成员 及您组织外的Beta测试者的装置上 您可以将作业流程配置成 自动将版本部署到您有的任何 TestFlight群组 对TestFlight群组的管理方式 就和您现在一样 在App Store Connect中的TestFlight 标签下管理您的TestFlight群组 这里 我有数个内部和外部群组 都在我的作业流程中供我使用 要用内部TestFlight群组 自动部署 您得做三件事 第一 增加一个“归档”动作 接着 将“部署”选项 设置为归档于“内部测试” 最后 增加TestFlight内部测试Post动作 让我们将作业流程照着以上配置吧 我想要这个作业流程 自动部署到我的问题解答团队 要做这件事 首先得点击“归档iOS”动作 并选取“仅限TestFlight内部测试”
这代表我的版本能在TestFlight上执行 这很棒 我也不用自动传送版本 给任何人 但我能保留 晚点再这么做的选项 在App Store Connect中由TestFlight 传送 我希望这个应用程序每次版本产生 都自动部署给我的同事 要做到这点 我得增加一个 TestFlight Post动作 点击Post动作旁的“增加”按钮 并增加“TestFlight内部测试”
归档iOS的假影是预选的 也正是我要的 点击“增加”按钮 增加一个内部群组
最后 选择“问题解答团队”
现在 我的问题解答团队成员可以 在它们融合至主干之前 辨识和测试所有功能 用TestFlight外部测试将版本传送给 组织外的测试者 这是个好方法 能在应用程序提交给App Store前 获得关于应用程序与功能的反馈 这样一来 您对变更可能从更多用户身上 获得信心 且有可能可以在发行至App Store前 再做变更、修正问题 要用TestFlight外部测试部署 还得再设置几个条件 在起始条件中选一个单一分支 这会确保您传送给 外部Beta测试者的版本保有连续性 接着 在“环境”区段中 选取“清除” 这能确保您的编码将从零开始构建 不会用到衍生数据 最后 将“归档”动作中的部署设定 设至TestFlight及App Store 这一切都设好之后 配置TestFlight外部测试Post动作 与配置TestFlight外部测试很相似 增加TestFlight中创建的 外部群组即可 TestFlight外部测试功能也增加了 可以部署给个人测试者 我们刚于Xcode 创建了一个拉拽请求作业流程 但您也可以在App Store Connect中 创建、编辑、管理作业流程 若您手边没有Xcode 而您得对作业流程做些变更 这是个很好的选项 现在 将镜头交回给贾斯汀 他将跟您们推荐一些 能为您的团队创建的作业流程的类型 贾斯汀? 谢谢 凯文 我认为Fruta的问题解答团队 会很高兴版本在拉拽请求作业流程上 能更快使用到 如您已见 作业流程很强大、很灵活 很适合用来打造团队作业模式 不管您的工作需要多少作业流程 都做得出来 我知道我们团队会做好几个 凯文刚给您看了拉拽请求的作业流程 但这里还有几个关于作业流程的想法 您与您的团队可以试试看 要将您的应用程序展示给 开发团队以外的用户 您可能得分发到外部TestFlight群组 或将您的应用程序提交给App Store 我的概念是强调高质量 让我的应用程序用户拥有很棒的经验 我得在分支上执行指定为发行版的 作业流程 它应该执行一个全面的测试 让版本归档 并在最后部署一个外部TestFlight群组 到用户手中 为了说明得更明确 让我给您看看 我的发行版作业流程 为确保我的作业流程将来也会构建 未来所有的发行版 我在发行版分支上 将起始条件设为“每个分支的变更” 为了更臻完善 我希望这个作业流程的每个版本 都从零开始 因此我在“环境”区段中 勾选“清除” 基本上 这样做会增加构建次数 因为一切都要重新编译 但这也会让我们有信心 不会有因缓存而产生的问题 请注意 我也为这个作业流程 选了特定版本的Xcode和macOS 将工具固定是汇整和完成发行版时 很重要的一个部分 为了确保我们的应用程序不管在 用户的iPhone还是iPad上都能运作 我在“测试”区段中 于各种模拟器上执行测试 为了让我们的应用程序版本 经由TestFlight分发 我做了一个“归档”动作 并设置了TestFlight和App Store的 部署准备 为确保我们的Beta测试者 总是能得到最新的版本 我设置一个Post动作 来部署至我们的外部TestFlight群组 当新编码融合到我们的发行版分支 它会自动构建、测试 并部署给我们的Beta测试者 现在我们可以很快地获得 关于变更的反馈 同时又能对维持高质量保持信心 这又是另一个作业流程 您可能会想要创建看看 它能每晚都表现更深层的测试设定 我的“过夜测试”作业流程 会定期执行 为了所有我需要的平台 对多种模拟器进行测试 任何测试失败都会回报给问题解答 团队 由于重点完全在于测试 因此没有必要在任何地方部署版本 我设定起始条件 选择“分支排程”作为起始条件类型 于周间每晚 执行此作业流程 然后 我将日子选为星期一到星期五 凌晨1点 在“环境”区段中 我选择最新的Xcode版本 以确保我们的应用程序版本成功地 以新工具发行 我希望此应用程序的测试臻于完善 为了通过测试 我选择了好几个计划 和模拟器 我也想要执行统计分析 因此我增加了“分析”动作 要求它通过 要是以上任何测试失败了 “通知Post”动作 会通知问题解答团队 我将“构建成功”设为“不通知” “构建失败”设为“通知全部” 我的问题解答团队有自己的Slack 频道 但我也可以指定电子邮件地址 不管用哪个方法 问题解答团队都会 在隔日早上发现构建失败 这样执行作业流程 是个省时的好方法 因为您和您的团队可以在白天开发 晚上就将您的应用程序测试 交给Xcode Cloud 最后 在Xcode的“产品”菜单下 有“管理作业流程” 我可以在此查看我们团队所使用的 所有作业流程 我看到刚创建的 “过夜测试”作业流程 也有卫斯理和凯文稍早创建的 作业流程 随着我们的项目成长 我可依团队需求增加更多、编辑 或移除作业流程 我们团队的作业流程就介绍到此 我们向您展现了如何为拉拽请求 创建作业流程 如何为不同平台配置动作 如何分发发行版给TestFlight用户 以及如何设定过夜测试 但您利用作业流程 还能做很多其他事 更棒的是 您甚至可以从App Store Connect 创建、管理那些作业流程 若您想学习更多关于作业流程的事 请看“自定义您的进阶Xcode云碟 作业流程” 若您还没有机会 请看“认识Xcode Cloud” 学习如何对项目进行内建设定 还有其他很棒的议程 深入讨论云碟签名和 Xcode对拉拽请求的新支持 Xcode Cloud让您的团队能依照团队的 工作模式创建灵活、有扩展性的 作业流程 确保团队能持续跟上 开发实务 这个议程能帮助您创建作业流程 优化您与团队的迭代开发 进而创作出高质量的应用程序 谢谢您的观赏 WWDC其他的议程祝您观赏愉快 [音乐]
-
-
正在查找特定内容?在上方输入一个主题,就能直接跳转到相应的精彩内容。
提交你查询的内容时出现错误。请检查互联网连接,然后再试一次。