首页 文章详情

ºº⁷/₂₀₂₁ WWDC | 初识 Xcode Cloud

知识小集 | 415 2021-06-11 12:56 0 0 0
UniSMS (合一短信)


本文基于 《Meet Xcode Cloud》与 《Explore Xcode Cloud workflows》两个 Session 整理而成,更详细信息,请观看视频。


相信很多朋友都用过 CI/CD 工具做持续集成、持续交付和持续部署工作,不管是使用哪种语言来开发。大公司一般会选择在现在工具的基础上自建,小公司或个人可以选择一些公开的工具,类似于 Jenkins、Travis CI 等。使用这些工具和方法,可以定期集成代码变更进行测试工具,以及早发现和修复问题,可以说,通过一整套的 CI/CD 方法,可以让团队在创造高质量产品的同时,很好地协同工作。

CI 工作流

典型的 CI 工作流是一组可自动化的步骤,在将代码变更推送到代码仓库后会自动运行。这整套流程包括自动构建、代码分析、运行测试、存档等等,甚至可通过脚本来自定义流程,以确保整个流程按照团队预定的要求来执行。

对于一个开发团队来说,我们的目标是在完成产品需求的同时,保证高质量的代码,而这需要不断地迭代更新并获取有效反馈。Apple 平台的开发者要获取这些反馈,可能是来自于 Xcode,或者是团队的代码审核、或者是测试人员、亦或者是通过 TestFlight 分发新版本从用户那边获得。


初识 Xcode Cloud

基于此,苹果将 CI 的能力集成到了 Xcode 中,推出了 Xcode Cloud,其目标是为 Apple 平台的开发者提供完整的开发流程,包括构建、测试、分发、收集反馈等。


相关的几个 Session 都是以一个名为 Fruta 的应用作为示例,要介绍 Xcode Cloud 的主要功能。

Xcode Cloud 是集成在 Xcode 中(App Store Connect 中也有)。在这里我们可以了解 Xcode Cloud 运行的各项信息及相关配置,包括工作流、构建情况及问题反馈,以及整个团队的工作情况。我们可以快速启动和运行工作流,并在后续可以根据需要来个性配置信息。而构建的整个过程是在 Apple 托管的 Cloud 基础设施中运行的,这套基础设施提供了代码签名,以及对多个操作系统版本和 Xcode 版本的支持。

在 Xcode 的 Report Natigator 中选择 Cloud 选项卡来打开信息面板,左侧是所有工作流和最新构建的状态,


而在右侧可以查看以下一些信息:

• 构建组概览,显示所有的工作流,当然还可以点击面板左上角来做一些过滤操作。


• 单次运行的构建报告,可以看到构建的所有详细信息


添加工作流

添加工作流的操作很简单

• 在菜单中选择 Product -> Xcode Cloud -> Create Workflow


• 在弹出的面板中选择要加载的应用,点击“Next”


• 在新的面板中可以看到 Start Condition、Environment、Actions、Post-Actions 几个项,这里主要包括各项配置信息。点击 “Next”


• 授权 Xcode Cloud 访问源代码,点击右侧 Grant Access 按钮


• 接下来会跳转到 App Store Connect 中,以完成代码访问权限工作

• 授权完成后,回到 Xcode。


• 开始一个构建,并指定构建分支

这样就开启了一个工作流,我们可以在构建组中选择相应的构建来查看构建详情。

配置工作流

通过检测本地项目,Xcode Cloud 可以定制初始工作流的默认设置以匹配团队的现有配置。我们可以去修改这些配置信息,以构建我们自己的工作流。右键点击 Cloud 导航中配置文件,选择 Edit Workflow... ,在弹出的面板中可以修改一些通用信息、Start Condition 和 Environment 等,还可以添加 Action 以执行你想要的操作。例如,如果想为团队创建 Pull request 工作流,以完成以下工作:

• 每次 pull request 时运行;
• 执行分析、测试、archive App 操作;
• 构建完成时通知团队成员
• 将应用版本分发给团队成员

在建好工作流后,可以在配置面板中修改配置的信息。在 General 面板中,可以设置以下信息:

• 工作流名称

• 如果有需要,还要以限制编辑,以防止一些意外更新

• 默认情况下,Xcode Cloud 使用本地信息来设置仓库信息和项目信息,这些可以根据实际情况来设置。


Start Condition 配置

在 Start Condition 面板中,我们可以设置何时启动工作流,当满足设定的条件时,工作流就会自动开始执行。可以设置以下信息:

• 类型
• 代码分支
• 文件和目录变更,也可以自定义条件,指定到特定的文件或目录;
• 是否自动取消之前的构建

Environment 选项

Environment 决定了工作流如何运行,Xcode Cloud 在苹果的 Cloud 基础设施上运行,并提供各种版本的 macOS 和 Xcode。这里可以设置以下信息:

• Xcode 版本
• macOS 版本
• 是否选择干净的构建;这类似于 Xcode 本地的 Clean 操作,在大型工作中,重新构建可能花费的时间会比较长;
• 可扩展选项,这些扩展允许将 Xcode Cloud 与其它工具和系统连接起来;这些选项也可以作为环境变量,提供给自定义脚本

Action

Action 定义了在执行工作流时希望完成的一些操作,主要有四类操作:构建、分析、测试、存档。


可以点击配置面板左侧 Action 旁边的 + 来添加。


添加后,会显示操作相关的配置,可以根据自身需要来设置。

Post-Action

我们可以配置一些通知,以在执行完成工作流,不管成功与否,来推送通知告诉开发者执行结果。可以是 Slack,与可以是邮件形式


另外,Xcode Cloud 还与 TestFlight 尝试整合,可以使用 TestFlight 来自动部署

App Store Connect

除了与 Xcode 深入融合外,在 App Store Connect 中也可以看到 Xcode Cloud 的构建信息,并可以做一些设置,比如设置个人通知(在失败时将消息推送到 Slack 中)等等。


安全性

有同学可能会问,在云端构建,那会不会造成代码泄漏等问题。这点可以完全放心,毕竟苹果在保护隐私方面也是下了大力气。而源代码是项目的核心,确保代码的安全性也是苹果重点考虑的问题,为此他们做了以下工作:

• 构建环境是临时的;
• 工作流是完全隔离的,构建环境在构建前会被清除并在构建时重新创建;
• 不会存储源代码,Xcode Cloud 仅在临时环境中获取代码;
• 构建数据以过加密并存储在专用的 CloudKit 数据库中
• 开发者可以随时删除数据

小结

工作流是 Xcode Cloud 的核心,推动持续集成,使您和您的团队能够自动构建、分析、测试、存档和分发您的应用程序和框架。它们灵活且可扩展,可以围绕团队现有的开发和分发流程自定义工作流程。相信熟悉使用 Xcode Cloud 后,可以大大提高开发效率。



推荐阅读

☞  Swift 5.5 新特性抢先看,async/await 将重磅来袭
☞  iOS 恢复调用栈(适配iOS14)
☞  正经分析iOS包大小优化
☞  ºº¹/₆.₆ 苹果意外泄露 homeOS;AVE 漏洞可用于 iOS 系统越狱;HarmonyOS 2 正式发布

就差您点一下了 👇👇👇


good-icon 0
favorite-icon 0
收藏
回复数量: 0
    暂无评论~~
    Ctrl+Enter