作者:Watermelon,6年 iOS 开发经历,首要担任基础结构规划、SDK 封装及项目交付办理,现在致力于智能轿车 & 手机互联计划规划。

审阅:红纸,iOS 开发,周报修改,就职于淘系技能部

本文根据 Session 10268 & Session 10269 梳理

本文知识概况

【老司机精选】探索 Xcode Cloud Workflows

本年的 WWDC 21 关于开发者来说 Xcode Cloud 是最具有吸引力的话题之一吧! 由于小编的 Xcode Cloud Beta 还在请求中,所以本文首要依据官方视频以及文档并结合小编在实践开发中的经历对 WorkFlows 在 Xcode Cloud 的重要性以及怎么创立 WorkFlows 的详细介绍和总结。

引言

不管是运用哪种语言来开发,相信咱们对 CI/CD 东西做继续集成、继续交付和布置作业应该是极为熟悉的。无论是大公司、小公司或个人都会挑选一些东西,类似于 Jenkins、Travis CI 等来对自己的项目进行集成、测验、发布等作业,能够说经过一整套的 CI/CD 办法,能够让团队在发明高质量产品的一同,很好地协同作业。

假如读者从前运用过 fastlane 等东西完结过项意图构建、打包、上传,那会很轻松的理解这一篇的文章介绍的内容。

全文以苹果官方 Fruta 的运用程序举例说明,它现已在 Xcode Cloud 上发动并运转。怎么您还不知道什么是 Xcode Cloud,您能够订阅《老司机技能周报》– 窥视 Xcode Cloud 这篇文章,或许直接观看苹果官方视频 Meet Xcode Cloud(《【WWDC21 10267/10268/10269】窥视 Xcode Cloud》)

作业流介绍

当咱们参加到 Fruta 运用程序时 Xcode 现已为咱们创立了一个默许作业流程,用于构建主分支。咱们的需求设定是,任何人更新项目时: ​

  • 构建,剖析、自测和打包该运用程序;
  • 在完结提交到该分支后需求告诉团队;
  • 以便同队成员能够 review 代码进行提测审阅。

作业流装备

创立作业流很简略,Menu -> Product -> Xcode Cloud -> Manage Workflows -> 单击加号,然后挑选我的运用程序。

【老司机精选】探索 Xcode Cloud Workflows

确定增加之后,会呈现一个新的作业流修改器。

【老司机精选】探索 Xcode Cloud Workflows

作业流由多个可装备组件组成,我能够在其间命名我的作业流程,苹果官方 Demo 将其命名为“Pull Requests”。

【老司机精选】探索 Xcode Cloud Workflows

假如咱们所在的团队人数较少,能够挑选限制修改以避免或许影响团队内部的意外更新。

【老司机精选】探索 Xcode Cloud Workflows

默许状况下,Xcode Cloud运用本地设置信息来设置代码库房和项目信息,可是假如需求指定咱们的库房时能够在这儿更改这些设置。

【老司机精选】探索 Xcode Cloud Workflows

发动条件

Start Conditions 是定义 WorkFlows 何时运转的地方。

发动条件装备

Xcode Cloud 有多种条件类型。对本文 Demo 作业流,咱们将其发动条件设置为针对全部计划兼并到主分支的 “Pull Requests” 恳求运转:Start Conditions -> Type -> Every Change to a Pull Request

【老司机精选】探索 Xcode Cloud Workflows

这种条件类型答应我指定源分支和方针分支。我将源分支设置为 Any Branch ,将方针分支设置为 main。

【老司机精选】探索 Xcode Cloud Workflows

现在,每次团队成员针对 main 创立拉取恳求并对其进行更改时,Xcode Cloud 都会主动运转此作业流。

其他设置信息:

  • 针对特定文件或文件夹的改动
  • 并挑选设置是否要在作业流运转时主动撤销任何从前运转的构建。当咱们呈现连续地将一个提交推到另一个之上,这事会十分便当的。

当前在构建该项目时,Xcode Cloud 现在会一同构建和测验源分支和方针分支的兼并,此刻团队成员的恣意一次修正都会让其他成员所了解

【老司机精选】探索 Xcode Cloud Workflows

其他发动条件类型

对“Pull Requests”的每个更改都只是一个在上面创立的作业流设置的发动条件中,依据团队需求,咱们还有其他条件类型供给给咱们装备以满意这些需求。

  • Every change to a branch:对分支的每次更改将一向构建源分支并疏忽任何拉取恳求状态;
  • Every change to a tag:每逢创立新标签时,都会构建对标签的每次更改;
  • On a schedule:将在您能够挑选的重复计划上构建您挑选的分支,假如是偶然进行长期运转的测验,这个会很方便;

环境装备

Set up Environment 是决定 WorkFlows 怎么运转的重要组成部分。

基础装备

【老司机精选】探索 Xcode Cloud Workflows

  1. Xcode Cloud 供给各种 macOS 和 Xcode 版别,还能够将 Workflows 设置为指向最新版别或 Beta 版别,让咱们一向能够在最新软件上进行构建或测验。
  2. Clean 选项,大多数的实践项目是包括许多文件的大型项目,构建需求很长一段时刻。在 Xcode 中咱们能够挑选经过仅构建已更改的文件来构建本次项目。 Xcode Cloud 中 Clean 操作便是保证咱们能更快的构建当前项目
  3. 除了 Xcode 供给的现有脚本选项之外,Xcode 还增加了创立自定义脚本的功用,这些脚本在履行构建和测验的设备上运转。这个下面的环节会继续讲解
  4. 在这一个装备中,我能够指定 Xcode Cloud 供给给自定义脚本的环境变量。这关于咱们不想签入源代码存储库的装备和秘要是十分有用的。

到现在为止,便是 Xcode Cloud 怎么装备作业流和怎么运转以及他们应该在什么环境中运转,那灵敏性体现在哪里呢?

环境的高级装备

苹果还供给了运用环境变量将额定的信息传递到构建中,这样就能够在“Environment”中装备所需的任何环境变量,用 key-value 的方法增加即可。将 API 服务中的不同 URL 传递到测验中。

【老司机精选】探索 Xcode Cloud Workflows

环境变量加密

关于 API Key 或 access token 等灵敏信息,您能够装备隐秘环境变量。隐秘环境变量会得到安全处理并安全存储,而且它们的解密值仅在运转咱们操作的暂时环境中可用。只需选中环境变量表中的“隐秘”复选框即可。

【老司机精选】探索 Xcode Cloud Workflows

更多环境变量能够查看环境变量参阅。其他更高级的装备,会在文章终究一节进行介绍。 接下来详细介绍一下 Actions。

作业流操作

这个部分内容实践上便是将 Xcode 在本地履行的相关操作现在都能够在 Xcode Cloud 中运用:构建、运转静态剖析、测验、和存档,与 Xcode Cloud中对应的 Actions 一一对应,在此次Demo中,会依次展现以下操作:

【老司机精选】探索 Xcode Cloud Workflows

存档

首要在作业流修改页面的 Actions 目录中,单击操作旁边的加号图标并挑选存档来增加存档操作。默许挑选了 iOS 渠道和 iOS 计划。

【老司机精选】探索 Xcode Cloud Workflows

(我还能够挑选注册TestFlight 或使其为 App Store 分发做好准备,但稍后会详细主动布置)

读者是否现已留意到,咱们没有办理证书和描述文件。当咱们登陆了开发者账号时Xcode Cloud 现已主动为咱们相关了。要了解更多相关信息,请查看 Session 10204。

测验

关于开发者来说,Test 更重要的是自测环节,它是开发过程中是一个十分重要的人物,能够进步团队中测验同学的作业效率,从而保证 App 用户极优体会的条件。可是,大多数状况由于本地运转测验或许会占用很长的开发时刻和作业环境,导致大多数开发和公司疏忽掉这一点,全交由测验同学完结这一项作业,这会导致测验同学会做很多重复性且十分固定 testcase 测验作业。

因而,小编认为 Test action 是一个十分有意义的环节,在开发者完结 Unit test 代码后,经过在 Xcode Cloud 中设置带有测验的作业流,便能够轻松的在安稳、可靠和可重现的环境中运转。这个环节能够在咱们做其他作业时在后台运转,开释咱们的本地环境,而且能够定时主动开端无需手动敞开。

增加测验

要增加测验操作,我只需求点击加号按钮并挑选测验。

【老司机精选】探索 Xcode Cloud Workflows

测验的可选性

关于测验操作,咱们能够挑选让它 Pass or Not Pass。

  • Required To Pass:假如此测验操作失利,则整个构建将失利
  • Not Required To Pass:不会影响整体构建状态(在本地构建过程中能够挑选该项)

【老司机精选】探索 Xcode Cloud Workflows

多种测验计划

在挑选要运转的测验时,咱们还能够设置多种不同的测验计划。

例如苹果官方的 Demo — Fruta iOS 计划中的设置,或许假如咱们想反复测验某组计划,就能够规划一个特定的测验计划。一旦有了这个设置,剩下要做的便是挑选我想要运转测验的模拟器。

【老司机精选】探索 Xcode Cloud Workflows

模拟器挑选

Xcode Cloud 供给了一个推荐选项,它是不同屏幕尺寸的模拟器调集。推荐的选项是针对在环境装备部分中挑选的 Xcode 进行测验,但假如咱们挑选了特定的模拟器,也能够从操作列表中进行挑选。

【老司机精选】探索 Xcode Cloud Workflows

剖析

编译器能够主动发现许多过错并正告咱们,这个操作不知道看这篇文章的你们,在往常作业中有没有用到过,实践上小编是偶然会用到。

每逢在有大的版别提测之前,会花一天的时刻做一下静态剖析,真的会发现一些自己或许测验同学不简略发现的一些功用问题,例如内存溢出、循环引用等一些莫名明美妙不好复现的问题,能够为咱们节省很多的开发时刻(fix bug 也在咱们的开发周期中),一同为咱们的用户供给更安稳和无过错的运用体会。

小编之所以不是常常用到,是由于“发现、追寻、修正”这个流程真的会花费一段时刻,而且也会打断开发业务的节奏。但实践上跟着时刻的推移隐藏的问题在整个项目中堆积如山,所以在提测之前花一天的时刻去做一次静态剖析也是有必要的。

在这次更新的 Xcode Cloud 中增加了该操作做,能够保证每次更改代码时都会运转静态剖析。

【老司机精选】探索 Xcode Cloud Workflows

单击 Actions 的「加号」按钮,然后挑选剖析。像测验相同,也能够挑选将静态剖析是否影响构建流程

构建

终究要介绍的是 Build Action,这个操作的运用频率是仅次于 Xcode Run 吧。有时咱们或许只想保证特定的辅助构建装备或计划依然能够编译,或许或许只是保证作为运用程序一部分的结构能够自行构建,因而咱们或许仅需求一个简略的 Xcode Build 操作。

在 Xcode Cloud workflows 中,能够装备post-actions、Post-actions 在全部构建、剖析、测验和存档操作完结后运转。

能够运用 Xcode Cloud 装备的后期操作是发送告诉并运用 TestFlight 进行布置。

构建后期操作 – 发送告诉

【老司机精选】探索 Xcode Cloud Workflows

例如,能够发送两种类型的告诉事情。

【老司机精选】探索 Xcode Cloud Workflows

  • 构建成功时,能够挑选发送全部构建成功的告诉
  • 仅修正,即当分支或拉取恳求构建从失利转换为经过时;
  • 或许不告诉。
  • 构建失利时,能够为全部构建失利发送告诉
  • 仅中断,即当分支或拉取恳求构建从经过转换为失利时。
  • 或许不告诉。

【老司机精选】探索 Xcode Cloud Workflows

在苹果官方 Demo 的作业流程中,想在拉取恳求构建完结时告诉团队。(点击加号增加操作,有几个用于发送告诉的选项)

【老司机精选】探索 Xcode Cloud Workflows

  • Xcode Cloud与盛行的协作东西 Slack集成。授权 Slack 帐户后,能够单击加号按钮以显现频道列表,挑选“ci-builds”频道并单击“确定”。
  • 还能够挑选增加电子邮件地址

构建后期操作 – TestFlight 主动布置

终究,小编要想要分享自己最感兴趣的 Xcode Cloud Workflows 功用之一:运用 TestFlight 主动布置的才能。在这之前小编一向用的是 fastlane 做一部分的作业,最开端每次上传都需求输入账号和密码,后来试着装备秘钥,终究常常运用的还是其他上传东西,例如 Transporter。

众所周知 TestFlight 现已被集成在 App Store Connect,日常开发中咱们或许会运用 Transporter 等其他东西将咱们打好的包提交到App Store。现在 Xcode Cloud 供给了两个 TestFlight 布置选项。

【老司机精选】探索 Xcode Cloud Workflows

一同在 Xcode Cloud 中支撑咱们办理和运用在 App Store Connect 中的 TestFlight 组,Xcode Cloud 供给了能够 装备 workflows 主动将构建的成果布置到咱们拥有的任何的 TestFlight 组内。

TestFlight 主动布置装备

内部测验

【老司机精选】探索 Xcode Cloud Workflows

  1. 增加一个存档操作。
  2. 将存档上的布置选项设置为内部测验。
  3. 增加一个 TestFlight 内部测验后期操作。

例如,官方 Demo 作业流程主动布置到 QA 团队, 1、单击 Archive iOS 操作。 2、挑选 TestFlight Internal Testing Only(构建将在 TestFlight 中可用)。

【老司机精选】探索 Xcode Cloud Workflows

3、在生成构建时主动布置给其他搭档,需求增加一个 TestFlight Post-Actions 操作(单击 Post-Actions 旁边的加号按钮,并增加 TestFlight 内部测验。)

【老司机精选】探索 Xcode Cloud Workflows

现在,QA 团队的成员能够在按照咱们预先设置的流程(全部功用兼并到主分支之前)验证和测验全部功用。

外部测验

实质上便是在提交到 App Store 之前就能够装置该 App,以便不是装置过证书的测验机,例如公司想要提早发布给一些忠实用户的一种途径,能够提早获取用户的反应定见。经过这种方法也能够在发布到 App Store 之前进行问题的发现并修正。(小编说,类似于灰度发布,不知道你们有没有过类似操作呢)。

该项布置需求设置一些条件

【老司机精选】探索 Xcode Cloud Workflows

  1. 在开端条件中挑选单个分支,这保证了构建的共同性为咱们计划发送给外部 Beta 测验人员。
  2. 在环境部分挑选 Clean,这保证了咱们的代码将从头开端构建,而不运用派生数据。
  3. 将 Archive 操作中的布置设置为 TestFlight 和 App Store。

完结全部设置后,装备 TestFlight 外部测验 Post-Actions 类似于装备 TestFlight 内部测验了。咱们只需增加在 TestFlight 中创立的外部组,TestFlight 外部测验还具有布置到单个测验人员的附加功用。

作业流的灵敏装备

正如本文介绍,Workflows具有强大的功用和灵敏性,能够依据不同的需求创立恣意数量的作业流来完结作业。上文展现了“Pull Request”的作业流程,接下来简略介绍一下其他 Workflows 的想法。

1. 灰度发布

运用 TestFlight 主动布置到外部测验组,也能够说是咱们的 VIP 用户,等等任何咱们想要让他提早体会咱们的新功用的用户组。

和上面的介绍的流程共同,履行以下流程

【老司机精选】探索 Xcode Cloud Workflows

这样咱们就能够快速获相关友爱的反应,保证咱们的功用以最优的作用展现给全部用户运用

2. 固定时刻进行测验

不知道读者是否触摸过主动化测验,其间一个运用便是将一些不会常常变化的流程和 testcase 进行测验。咱们能够创立一个叫做“Overnight testing workflow”。有以下几点需求,

【老司机精选】探索 Xcode Cloud Workflows

  1. 针对多个模拟器进行测验以覆盖我需求的多个渠道。
  2. 任何测验失利都会报告给 QA 团队。
  3. 而且由于要点完全放在测验上,因而无需在任何地方布置构建。

【老司机精选】探索 Xcode Cloud Workflows

挑选 On a Schedule for a Branch 作为咱们每周频率的发动条件类型

  1. 将发动条件设置为每个作业日晚上运转此作业流。
  2. 将周期挑选为周一至周五凌晨 1:00 在“环境”装备中
  3. 挑选了最新的 Xcode 版别以保证跟着新东西的发布,咱们的运用程序构建成功。
  4. 想要完全测验咱们的运用程序,能够挑选一些需求经过的测验计划和模拟器。
  5. 运转静态剖析,能够增加了一个剖析操作,并要求它经过。
  6. 构建成功设置为不告诉,并将构建失利设置为全部人。QA 团队会在第二天早上发现任何构建失利。

运用这样的的作业流程是节省时刻的很好的办法,由于咱们的团队能够在白天继续开发,而在下班后晚上的时刻经过 Xcode Cloud 来完全测验咱们的运用程序。

终究,在 Xcode 的 Product 菜单下是 Manage Workflows,我能够在其间查到从前创立和运用的全部作业流。

【老司机精选】探索 Xcode Cloud Workflows

跟着咱们项意图发展,我能够增加更多、修改或删去作业流程以满意团队的需求。

官方 Demo 中现已向咱们展现了怎么为“Pull request”创立作业流、怎么为不同渠道装备操作、怎么向 TestFlight 用户分发版别、以及怎么设置夜间测验。 ​

自定义 Xcode Cloud

Xcode Cloud 终究意图是将 Apple 开发者运用的东西和服务,例如开发者网站、TestFlight 和 App Store Connect 打包成一个东西箱,一站式服务。 ​

在作业中必不可少的会有开发东西的集成运用,例如根据 Git 的源代码库房的下载、办理、提交等作业,乃至是用于发送音讯告诉的邮箱,crash 日志上传,cocopods 对依靠库的办理,等等全部在 CI/CA 流程中的所运用的公司内部专有东西或许其他外部服务东西。 ​

那么在 Xcode Cloud 中的确盛大的介绍了怎么自定义 Xcode Cloud 去供给与这些东西和服务良好集成。首要将包括四个自定义主题(原文和自己的理解比照展现):

【老司机精选】探索 Xcode Cloud Workflows

自定义脚本

即便 Xcode Cloud 的作业流现已供给了灵敏且丰富的操作,但实践作业中咱们会有团队内部自定的需求。 ​

例如在构建项目时,我需求增加一个脚本让其将版别号主动更新(fastlane 功用代码):

【老司机精选】探索 Xcode Cloud Workflows
Xcode Cloud 中供给了将上面的代码内容增加到自定义脚本的的方法来完结这一点。 ​

自定义脚本在作业流中对应不同运转时刻节点可分为以下 3 种类型脚本: ​

  • Post-clone
  • Pre-Xcodebuild
  • Post-Xcodebuild

每次 Xcode Cloud 运转一个操作时,它都会履行一系列过程,每个自定义脚本,正如其姓名的含义那样,在作业流中的特定节点作为其间一个过程参加运转: ​

  • 首要,Xcode Cloud 设置一个暂时环境 clone 项意图源代码;
  • 之后运转脚本 Post-clone 脚本;
  • 处理其他依靠项后,Xcode Cloud 运转 Pre-Xcodebuild 脚本;
  • 接下来,运转上一步操作对应的 Xcodebuild 指令。
  • 当 Xcodebuild 完结后,运转 Post-Xcodebuild 脚本并保存这之前生成的全部归档文件。

【老司机精选】探索 Xcode Cloud Workflows
简略的说,在咱们设置的作业流中,有 3 个时刻几点能够让咱们做相应的操作。 ​

ci_scripts 文件夹

上面介绍了自定义脚本在 Xcode Cloud 作业流中的操作的方位,接下来介绍怎么创立、装备过程。 ​

首要请读者放心,向 Xcode Cloud 增加自定义脚本很简略。只需将咱们运用的 shell 脚本增加到名为**“ci_scripts”**的文件夹中,并将此文件夹放工程文件(例如官方 Demo:Fruta.xcodeproj)相同的等级。 ​

【老司机精选】探索 Xcode Cloud Workflows

当 Xcode Cloud 运转咱们的装备时,会主动在适当的时刻查找每个脚本是否存在,无需做额定的装备作业,只要存在即可运转。 ​

这儿需求留意,ci_scripts 文件夹的称号和里面的脚本必须符合该命名约定以便 Xcode Cloud 能够找到并运转该脚本。

装备和运用示例

自定义脚本能够看做是源代码的一部分,因而对不同分支的脚本进行更改,履行不同的操作,咱们能够经过以下场景来学习: ​

  • 作业中咱们会为了不同版别和功用独立出一个分支,例如官方 Demo:“Pull Requests”;
  • 这或许会导致提交测验到覆盖装置后,从表面上看让咱们无法区分是否是“Pull Requests”分支;
  • 咱们能够针对这种状况,为不同分支或许版别的 App 显现相应的 Appicon。

1、首要需求将 ci_scripts 文件夹增加到项目中。 ​

【老司机精选】探索 Xcode Cloud Workflows

2、接下来,将规划好的 「beta 运用程序图标」增加到 ci_scripts 文件夹。 (留意图片的内容,需求将它从 「Assets.xcassets -> AppIcon.appiconset」 拖到 ci_scripts 文件夹中。) ​

【老司机精选】探索 Xcode Cloud Workflows

3、终究,增加一个 Pre-Xcodebuild 脚本。由于需求在 Xcodebuild 之前将 「beta 运用程序图标」替换到 Appicon 的方位,且不需求勾选任何一个 targets。

【老司机精选】探索 Xcode Cloud Workflows

现在脚本现已就位,简略介绍一下脚本是怎么做到的

1、我想保证只要在构建来自「Pull requests」时才会替换运用程序图标。经过运用Xcode Cloud 供给的环境变量在运转时查看构建是否为「Pull requests」。环境变量参阅 2、删去现有的运用程序图标,并运用 rm 和 mv 指令将途径替换为测验版。 ​

【老司机精选】探索 Xcode Cloud Workflows

运用该装备构建成功后装置的 App 便是咱们期望看到的的 beta 运用程序图标。

【老司机精选】探索 Xcode Cloud Workflows

在 Xcode Cloud 中运用其他依靠库

相信 iOS 开发者对 Cocoapods 必定不默许吧,即便你不知道他的原理,你也运用过他,即便没有运用过,总算听说过吧。 ​

Cocoapods是一个专为Xcode工程(项目)所需第三方包的一个包依靠办理东西!类似于Java的Maven、Android的JCenter、Node的npm、yarn,作业职责都是相同。那本章节不是为了介绍 Cocoapods,由于 Xcode Cloud 为咱们供给了这样的功用。 ​

实例场景:Fruta 项目需求引入一个团队内部开发的一个 InvitationsKit 功用的 framework(官方 Demo 中是用的 Swift 项目,引入的是 package,不清楚 Xcode Cloud 是否支撑 Objective-C framework) ​

1、这是在 Xcode 中的 Fruta 项目,File -> Add Packages… ​

【老司机精选】探索 Xcode Cloud Workflows

2、然后挑选 Add Package ​

【老司机精选】探索 Xcode Cloud Workflows

3、现在增加了依靠项,咱们将更改的内容提交到当前分支上。

由于这是第一次增加这个依靠库, Xcode Cloud 无法拜访 InvitationsKit 库房,所以预计会构建失利。Xcode Cloud 供给了一个简略的界面来处理这个问题。

正如预期的那样,构建失利了而且在 Xcode Cloud 页面显现了一个 warning。单击“Manage Repositories”按钮。 ​

【老司机精选】探索 Xcode Cloud Workflows

在呈现的设置页面,在咱们想要操作的依靠库的方位单击 Grant 来答应 Xcode Cloud 链接代码库房。 ​

【老司机精选】探索 Xcode Cloud Workflows

此刻有或许会需求咱们去 GitHub 增加权限。 ​

【老司机精选】探索 Xcode Cloud Workflows

至此,咱们增加了全部需求的权限,答应 Xcode Cloud 拜访咱们的代码以及依靠的三方库。 ​

【老司机精选】探索 Xcode Cloud Workflows

现在,当咱们回到 Xcode Cloud 页面时它显现 Access Granted。 ​

【老司机精选】探索 Xcode Cloud Workflows

Xcode Cloud 还供给了对已链接的三方库的运用权限设置,在 Settings 下的 Additional Repositories 部分能够看到该列表,Xcode Cloud 将在构建期间检测这一部分内容。

小编有话

还有更多的 workflows 等待咱们去发现和探索,而且苹果还在 App Store Connect 中供给了 workflows 的创立、修改和办理。

经过官方介绍小编的感触是,苹果真的是给开发者的日常作业供给便当,功用强大且灵敏,但实践作业中或许有的团队现已有了自己的一套完好的 CI 流程,或许说有的小公司或许个人项目现已适应了没有这些环节的开发。

例如阿里集团内部运用的摩天轮,现已完全覆盖了这些操作。那么广大开发者是不是乐意运用这个功用,这还要看接下来真正发布之后,实践运用中是否真的做到了功用强大且灵敏、开发便当、进步作业效率,让咱们拭目以待吧!

Xcode Cloud 是 Xcode 13 的一项功用,现在处于测验阶段,运用 Xcode Cloud Beta 版需求提交请求,小编现在还在排队中

【老司机精选】探索 Xcode Cloud Workflows

假如请求下来,会进行实操后继续文章的更新。

重视咱们

咱们是「老司机技能周报」,一个继续追求精品 iOS 内容的技能大众号。欢迎重视。

重视有礼,重视【老司机技能周报】,回复「2021」,收取 2017/2018/2019/2020 内参

支撑作者

在这儿给咱们推荐一下 《WWDC21 内参》 这个专栏,一共有 102 篇关于 WWDC21 的内容,本文的内容也来历于此。假如对其他内容感兴趣,欢迎戳链接阅览更多 ~

WWDC 内参 系列是由老司机牵头安排的精品原创内容系列。 现已做了几年了,口碑一向不错。 首要是针对每年的 WWDC 的内容,做一次精选,并号召一群一线互联网的 iOS 开发者,结合自己的实践开发经历、苹果文档和视频内容做二次创作。