大多数浏览器和
Developer App 均支持流媒体播放。
-
认识 Xcode Cloud
了解为各个 Apple 平台构建 app 和框架的 Apple 连续集成和连续交付 (CI/CD) 服务 Xcode Cloud。探究 Xcode Cloud 如何提高团队生产率和产品质量。我们将向您展示如何开始首次构建、利用构建报告修复问题,以及团队协作。
资源
- About continuous integration and delivery with Xcode Cloud
- Configuring your first Xcode Cloud workflow
- Xcode Cloud
相关视频
Tech Talks
WWDC22
WWDC21
-
下载
♪ ♪ 您好 我叫荷莉 我是持续整合 技术团队的经理 待会儿 团队成员杰夫麦克葛尼斯 会加入我 今天 我很荣幸要介绍Xcode Cloud 这是个易使用的持续整合及传送服务 专为像您一样的开发人员设计 可用于打造Apple平台的 应用程序和软件框架
这段影片中 我们会先介绍持续整合 再带您认识Xcode Cloud 然后我们会设置一个项目 变更编码 并学习如何使用Xcode Cloud来与您的 团队合作
让我们开始吧
持续集成又叫CI 是用来定期整合编码变更的方法 使问题能被及早发现并修正 这个方法 能让不同团队合作作业 同时创造出高质量的产品
典型的持续整合作业流程是一套 自动化的步骤 当您或团队成员变更资源库编码时 就会运作 这些步骤可以构建、测试 还可以执行其他动作 确认编码变更符合 团队既有的品质 有了持续整合 您就能安心相信 整合变更是低风险的 也能确定新的发行版是稳定的 现在 为了解持续整合 让我们来看看应用程序的生命周期
一般来说 开发人员的工作会需要 多种来源的反馈 您修正错误 并在Xcode中创建功能 您会在拉拽请求中 收到团队对编码审查的反馈 并由TestFlight分发新版本 整合测试员的反馈
您的团队能否有效地迭代编码和反馈 是打造高质量应用程序和软件框架 的关键条件 这时候Xcode Cloud就派上用场了 Xcode Cloud的基础构想是持续整合 将Apple开发工具之间的点连接起来 以提供完整的开发管道 用以构建、测试、分发、收集反馈 并快速地在您的项目中 进行迭代 让我们来看看各项功能 并学习使用时机与方法吧
您的时间大多将花在Xcode内的开发 而Xcode Cloud就在Xcode里面 由此可以看到Xcode Cloud正在动作 有多种作业流程可设置 版本正在运作、侦错 您也能得到团队中 所有的最新信息
作业流程是一项设定 能告诉Xcode云碟 要执行哪些动作 以及何时执行 您可以轻易地进行内建设定 开始第一次作业流程 并快速运作 然后再回头编辑 或创建新的作业流程 以支持不同的使用案例
作业流程运作的结果 称为“版本” Xcode Cloud在Apple管理下的 Cloud基础架构中执行各版本 将编码签名及存取提供给 多重运算系统版本 及Xcode发行版 在报告导航的Cloud标签页中 点击您的应用程序 就能看到所有作业流程的状态 以及侧边栏中的最新版本
点击应用程序亦能打开该版本的 群组概述 展现所有的版本 依开发团队的作业方式排列 不仅依作业流程排列 也依GIT分支排列 让您能将一套作业流程 用于数个分支 但仍能分别观看结果
您也可以过滤清单 只看您变更编码后的版本 只需点击概述上方的Mine过滤器 或选取报告导航器中的个人图标
版本群组概述的下一层 是作业流程中单一运作的版本报告 您可以在此针对编码变更的结果 进行深入研究 您可以观看测试报告、纪录 并直接跳到造成问题的编码 稍后 杰夫会针对版本报告做 更详细的介绍
方才所见 并非只能用于Xcode 也能用于App Store Connect 包含构建版本、观看版本 管理作业流程 观看及下载假影 将结果分享给团队 管理通知设定 若您已准备好要在TestFlight工作 Xcode云碟标签页就在旁边 App Store Connect中有快捷方式
App Store Connect中 您可以设置 个人通知设定 我喜欢为失败的版本设置Slack通知 这样 在推送编码后 若有需修正处 我就会很快收到警示 并可以继续工作 您团队中的任何人都能设置通知 使其达到最符合需求的效益
无论您是否在处理其他作业 是否想要观看某项目的版本 您都无需在Xcode中设置 抑或您是团队中提交项目编码的人 App Store Connect中的Xcode Cloud 提供功能完整的网页开发经验 我们打造Xcode Cloud的设计理念 是针对您的开发程序 并使您能与团队合作 但隐私也是其核心之一部分
原始码就是项目的心脏 因此Xcode Cloud的各方面设计 都保证您的数据受到保护
版本环境是暂时的 工作量是完全独立的 环境会被完全拆解 并在各版本之间从零开始 原始码永远不会被储存 Xcode Cloud仅利用暂时版本环境 即可撷取您的编码 版本数据会自动加密 储存在特定的CloudKit数据库中 您可以完全掌控您的数据 您也随时可以删除数据 使它从系统中 完全移除
介绍完Xcode Cloud 我要交给杰夫 带您学习如何设置
我们开始进行 Xcode云碟内建设定 起步只需要几个简单的步骤 多亏Xcode 强大的整合功能
第一步是浏览 产品菜单的Xcode Cloud区块 选取“创建作业流程”
接着 从本地项目侦测到的选项中 选取想要设定内建的应用程序 今天我选这个新的果昔点餐应用程序 这是我的团队正在开发中的“Fruta” iOS和macOS系统皆支持此应用程序 我们会同时进行两平台的内建设定
此应用程序从默认的初始工作流程 开始 这是自动为我打造的初始工作流程 Xcode Cloud审查我的本地项目后 量身设置初始的工作流程设定 使其符合既有的设定
工作流程的产生来自起始条件 环境、所执行的动作组 及Post动作 例如配置与通知
我能看到Xcode云碟选取 每一个主干的推送 作为初始条件 针对我的环境最后发行的Xcode 并为iOS和macOS将动作归档
我可以选择变更这些设定 但是这些设定看起来没问题 所以我继续 要深入探讨编辑作业流程 请看之后的研讨会中 “探索Xcode Cloud作业流程”的议程
接下来 我要授权Xcode Cloud进入我的原始码 这是个一次性的动作 建构项目所需的资源库全都涵盖在内 包括原始资源库 子模块、以及隐私切换包 任何开放资源库 都不需要额外的授权
Xcode Cloud在我的项目中 找到两个私人资源库 因此 接下来我们要准予 显式许可以进入托管源码的GitHub 点击“准予存取” 来到App Store Connect 其中有更多关于下个步骤的细节
请注意 这个程序有多种可能的变化 取决于源码来源 我随时可以自由地取消存取
准予将原始码存取至Xcode Cloud 已在网上完成 这个助手引导我完成整个程序
我先用源码账号连到我的AppleID 以启动Xcode Cloud的 个人化经验 这个步骤会影响 源码来源的原生认证流程 以及Xcode云碟的安全加密 确保编码与个人资料 持续受到保护
然后 将Xcode云碟应用程序安装至 我的GitHub组织单位 启动存取我所选取的资源库
太好了 这些步骤完成 我的GitHub账号就准备好了 我们来完成Xcode的本地内建设定吧
资源库准备好了 我要继续下一步
最后一个步骤 Xcode云碟会让我 暂存我的应用程序 并将ID bundle至App Store Connect 我们的应用程序已经创建完成 现在只要再确认细节即可 看起来都没问题
此应用程序已完成Xcode Cloud配置 可以来到最后的内建设定流程了 这个步骤会启动第一个版本
第一个版本完成了 我们来深入看看结果
版本群组概述一目了然地显示 版本已启动且已完成 点击第一个“进入” 就能开启这个版本的概述页面
此概述显示关于此版本的简要细节 例如时间长度及环境配置 下方的区块则显示所有相关的动作 及Post动作的状态
右上方也有一些好用的按钮 可以重新创建执行 并在我的本地环境中检视此版本
离开概述、详述动作节点 例如这个暂时的“归档iOS” 就显示此特定动作的总结
我可以从这里看到这次执行的 纪录和假影
纪录页面将此动作中的所有作业 排得清清楚楚 上方的过滤器可以关注 特别需要注意的区块
也能很轻易地看到这个假影页面中 由此版本所产生的二进制纪录 纪录档案 及其他假影
所有的操作都非常方便 让团队成员和我能直接在Xcode里 检视持续集成内容
现在 我们来看动作总结 查查Mac归档动作为何失败
类似纪录总览 我可以用类型来过滤这些问题 作为有效率的分类方式
看来 第一个持续整合版本 抓到一个导入问题 我先前在Mac应用程序中没有抓到 由于我在Xcode中将结果分类 我可以在问题中使用“跳转”按钮 直接导向需要修正的编码
我将快速地做个编码变更 修正错误
我希望此持续整合版本顺利执行 因此我将提交 并推送到我的远程资源库
之后 我马上推送变更 可以看到Xcode Cloud已为我 创建一个新版本
我可以接着眼看 所有变更继续进行
我对这样快速的进展感到很兴奋 通过在Apple Cloud基础架构中执行 持续集成版本 团队将能够以前所未有的效率 在我们的项目上合作无间 现在 将镜头还给荷莉 进入好玩的部分
谢谢杰夫 将Fruta项目的Xcode Cloud 配置好并执行 身为团队成员 我可以在我的Mac中开启 Fruta Xcode项目 观看杰夫和其他成员 经手过的所有的作业流程 及版本
只要在云碟标签的报告导航器中 点击我的项目名称即可 因为团队中的作业流程皆已分享 我能看到杰夫刚创建的初始作业流程
杰夫修正导入问题时创建的版本二 看来已成功完成了 有了暂时版本 我们来编辑作业流程 看它的功能 找出能改善之处 为Fruta获得更多覆盖率 在作业流程名称上点击右键 选取“编辑作业流程”
先给作业流程一个 较符合的名称 这个作业流程叫“发行” 因为我们会打造、测试好几个分支 用于“发行版”
现在 我们来编辑起始条件 从侧边栏选取起始条件区 以开始设定
记得 起始条件将决定执行作业流程 所需的动作 当编码变更推送至主干 初始设定就会启动
我的团队也使用发行分支 因此我也要在这里加上去 点击自定义分支区的“增加”按钮 在表格列键入我的分支名称
这个起始条件看起来没问题了 接下来看动作
初始作业流程自动为 所有执行此项目的平台 创建归档动作 这当创建用的基础很棒 可是要加上额外的覆盖率 我会在此增加一些测试
点击侧边栏“动作”标题右边的 “增加”按钮 然后选取“测试”动作类别
要测试动作 我可以选取平台… 我们选iOS 然后选取正确方案 此处我们选的是Fruta iOS
侧边栏中还有一个红色的X 在新的测试动作旁 因为我们还没 填入所有需要的信息 最后要设定的是 加入可执行这些测试的装置 点击“终点”表格下面的 “增加”按钮 自动增加推荐的iPhone模拟器
然后再次点击 增加推荐的iPad
也可以变更这些 选一个特定装置的模拟器 我们选最新版的iPhone 以确定我的 应用程序能在iPhone _12上顺利运作
请注意 所有增加的终点 都将自动设为最新的OS版本
我可以在侧边栏中审视我的作业流程 看起来都没问题 那们我们存取变更吧 点击右下角的“储存”按钮
既然已对作业流程做了变更 我想确认它 不必变更编码也能启动 我可以手动 在报告导航器中的作业流程点击右键 然后选取“开始版本”
接着 我马上选择想要执行的分支 我们试试“发行版一” 我们才刚给这个作业流程增加了分支
我从这里点击“开始版本” 让它开始 太好了 我们的新版本开始执行了 现在 在版本群组概述中 有一个“发行版一”分支的新区 以及我刚起始的新版本“版本三” 这里显示为正在执行中 这个完成后 我有个关于发行分支运作的好点子 我可以继续增加发行的作业流程 或创建新的作业流程来支持我的团队
Xcode Cloud使将持续整合 应用于我们的应用程序 变得非常容易 杰夫只不过点击了几下就设定完成了 还修正了作业流程找到的问题 我也能轻易地看到他的所有动作 并加以强化我们的作业流程 团队能否有效率地迭代编码及反馈 是打造高质量的 应用程序及软件框架的要素 有了Xcode Cloud 您可以轻易配置 持续集成 无论执行是不是新的 都能让您的流程天衣无缝 您可以更有生产力、更有信心 您的使用者 会有良好的产品经验
希望这次议程帮助您熟悉 Xcode Cloud和持续集成 此议程由加拿大温哥华团队制作 我谨代表杰夫与我自己向您致谢 WWDC 2021祝您观赏愉快 [有节奏感的音乐]
-
-
11:04 - Import Issue
import SwiftUI #if !os(macOS) import UIKit #endif
-
-
正在查找特定内容?在上方输入一个主题,就能直接跳转到相应的精彩内容。
提交你查询的内容时出现错误。请检查互联网连接,然后再试一次。