Tag: 连续交付

iTunes Connect中的分阶段发行

今年WWDC上宣布的一项不错的新功能是分阶段发布。 这是一项新功能,能够在7天内逐步向用户发布应用更新。 长期以来,这一直使iOS开发人员羡慕他们的Android开发人员同事。 分阶段发布的功能与Android分阶段发布的功能不同,但它肯定比同时向数百万用户发布的功能要好得多。 那么它是怎样工作的? 如果您选择分阶段发布,则iTunes Connect将逐步向选择在7天之内进行自动更新的用户发布新版本。 所有用户仍然可以绕过此操作,如果选择的话,可以直接进入应用商店以下载新版本。 它的增加如下: 第一天:1% 第2天:2% 第三天:5% 第4天:10% 第5天:20% 第6天:50% 第7天:100% 如果有问题怎么办? 您可以随时暂停发布,最长总暂停时间为30天。 这是一个累积数字,如果您取消暂停并再次暂停,则不会重置。 如果存在无法解决的关键问题,则可以停止销售该应用程序版本,尽管这样做会从商店中删除该应用程序,因此这是最后的选择。 如果我想向所有人释放怎么办? 您可以随时取消分阶段发布并释放给所有用户。 在iTunes Connect中,您只需按“发布给所有用户”。 这听起来不错,我该如何选择加入? 选择加入确实非常简单,而且只要您没有问题,一切都可以为您管理,因此一切顺利。 iTunes Connect中有一个新的单选按钮,“使用分阶段发行”。 如果选择了,就是这样! is这是每个版本的功能,因此由您决定是否需要通过此分阶段的过程。 如何监视发布状态? 同样,从iTunes Connect。 有了分阶段发布的新视图,它可以向您显示当前所处的发布阶段。

使用Fastlane和Ansible进行iOS连续部署-第1部分

注意:本文已发布在Moonpig Engineering官方博客上。 在这里阅读 在担任Photobox Group的前一职务时,我参与了为iOS部署设置持续集成服务器并为他们配置Ansible的iOS应用程序DevOps实践。 我们使用带有TeamCity的mac Mini服务器的自托管CI解决方案。 在这两部分的文章中,我们将看到我们如何结合Fastlane和Ansible实现iOS应用程序的持续交付。 持续交付(CD)和DevOps实践加快了向最终用户交付新功能的速度。 iOS应用程序开发的快节奏世界可能会受益于DevOps实践,从而可以快速,轻松地将应用程序发布到生产环境中。 在iOS世界中,发布很困难。 它涉及复杂的步骤,例如代码签名以及处理Apple开发和发行证书。 这可能是一个容易出错且耗时的过程。 通过从Xcode本地构建,测试和存档iOS应用程序来完成手动发布。 然后,已存档的.ipa文件需要上传到iTunes Connect。 理想情况下,我们希望使用持续集成(CI)来自动执行此过程,该过程无需人工干预即可将每次提交或合并推送到Apple Beta测试服务TestFlight的主分支。 在本文中,我们将说明如何使用构建自动化工具Fastlane实现持续部署。 Fastlane提供CD最常见的业务收益,但也为其他工程团队带来收益,包括: 消除针对DevOps的DIY,并专注于构建本地iOS功能。 每次合并后,新版本都会自动上载到iTunes Connect。 自动执行重复的升级或设置新CI服务器计算机的任务。 通过源代码管理所有基础结构。 开发人员计算机和CI服务器具有相同的配置。 挑战性 以前,发布我们的应用是一项使命。 部署是一天的马拉松比赛。 我们遵循了本地计算机上传统的,耗时的手动发布方式。 从Xcode构建,测试,存档和上传iOS应用程序非常耗时。 发布中最痛苦的部分涉及下载与分发证书关联的正确的配置文件。 如果我们在上载到iTunes Connect或在生产中的版本中发现问题,则重复此过程将更加痛苦。 为了简化发布过程,我们必须克服以下挑战: 自动化分析,构建,测试,存档并将iOS应用程序上传到iTunes Connect的过程 设置持续集成服务器以使用自动生成 在需要时自动执行重置CI服务器设置的过程(例如,当Xcode版本更改或任何Apple API更改时) 从代码或称为代码的基础架构驱动iOS CI基础架构 确保iOS开发人员计算机和CI服务器上的软件配置相同。 说不可以在我的机器上使用 我们结合使用Fastlane,TeamCity和Ansible工具解决了这些问题。 这些代码段仅供参考,让我们开始吧。 使用Fastlane构建自动化 诸如xcodebuild之类的Apple命令行开发人员工具是一种强大的方法,可用来编写任何我们想自动化的脚本。 但是,我们正在编写的命令可能非常冗长和繁琐。 Fastlane是Apple命令行工具的包装,使构建自动化更加容易。 有一系列Fastlane工具可用于自动执行各种iOS开发任务,例如,“扫描”用于运行测试,“健身房”用于构建应用程序,“飞行员”用于将应用程序上传到TestFlight。 自动化Swift版本检查 自动构建过程的第一步是确保使用正确的软件版本(例如Swift和Ruby)以干净的状态启动CI构建。 Fastlane提供一个before_all步骤,该步骤在所有其他通道之前运行。 您可以阅读有关高级Fastlane的更多信息,以配置此步骤。 […]

如何使用Fastlane徽章插件改善您的Beta部署流程

我们本教程的目标是在应用程序图标上覆盖应用程序版本号,内部版本号和发行类型。 希望这将使您的项目经理和测试人员更容易轻松地识别应用程序版本,而无需转到应用程序设置(或放置在任何位置)。 如果这是您第一次听说Fastlane,那么它基本上是一种工具,可让您自动执行iOS和Android应用程序的Beta部署和发布。 有多种安装Fastlane的方法。 您可以使用Homebrew,Rubygems或安装程序脚本进行安装。 任一种都可以。 $〜宝石安装快车道 如果您已经熟悉创建自己的方案和配置,请跳至下一部分 。 安装Fastlane之后,我们将根据上表为构建环境创建新的方案和配置。 要为登台构建创建新的配置,只需复制Debug配置并将其重命名为Debug Staging 。 然后复制Release配置并将其重命名为Release Staging 。 对于应用商店配置,您只需复制Release配置并将其重命名为App Store 。 而已。 然后,编辑方案以使用新创建的配置。 暂存方案将使用“ Debug Staging和Release Staging配置,而App Store方案将使用App Store配置。 对您指定的每个方案重复上述步骤。 请记住,通过选中共享复选框将方案设置为共享方案。 否则,您的方案不能在Xcode之外使用,也不能在git中跟踪。 如果您已经熟悉Fastlane,请跳到下一部分 。 要在项目上初始化Fastlane,请在终端中运行以下命令。 $〜cd / your-project#确保您在项目根目录中 $〜fastlane初始化 Fastlane然后将提示您几个问题,以帮助您快速设置项目Fastfile和Appfile 。 如果您搞砸了,请不要担心,因为稍后可能会对其进行更改。 创建快速通道 Fastlane使用通道定义部署工作流程。 在本教程中,我们将创建三个不同的通道。 用于开发构建的alpha通道,用于暂存构建的beta通道以及用于生产(应用商店)构建的store通道。 通过此设置,您只需运行以下命令即可使用Fastlane。 $〜fastlane alpha#运行Alpha通道 $〜fastlane beta#运行beta通道 $〜fastlane store#运行商店通道 要自动增加内部版本号和版本号,我们必须确保您的项目正在使用Apple Generic版本控制系统。 您可以阅读Apple的官方文档以了解更多详细信息。 我们的计划是根据git […]

新的Fastlane插件可使用altool上传iOS二进制文件

最初在XCBlog上发布 。 阅读原始文章以获得更好的图形 苹果不希望我们出于任何原因启用连续部署。 没有用于处理iTunes Connects的API,Apple仍然希望批准您的应用程序。 苹果自己的持续集成服务器(又称Xcode服务器)不允许我们将IPA文件上传到iTunes Connect。 存档过程会创建一个ipa文件,但会在那里停止。 我们仍然需要依靠Fastlane或手动过程将内部版本上传到iTunes connect。 在上一篇博客文章中,我们已经看到了将iOS二进制文件上传到iTunes Connect的五种方法。 在本文中,我们将介绍我编写的Fastlane插件altool,以使用altool将iOS二进制文件上传到iTunes Connect。 您可以在Github上找到该插件的详细信息。 为什么我写了这个插件 Fastlane解决了使用传递和试用之类的工具将iOS二进制文件上传到iTunes Connect的问题,以便我们可以编写与iTunes Connect交互的脚本。 但是,Fastlane使用iTMSTrasporter工具上传二进制文件并处理iTunes Connect,这是一个棘手且漫长的过程。 GitHub上有一个问题来讨论在iTMSTransporter上使用altool的问题,但是作者决定使用iTMSTrasporter来交付工具。 altool是Application Loader的命令行界面,似乎比iTMSTrasporter更为流畅。 我们不需要显式安装此实用程序,它附带了最新的Xcode。 苹果在这里有altool的简要文档。 使用Fastlane,无需使用此工具,因此我认为编写插件很容易,这样我们就可以将二进制文件上传到iTunes connect。 如何使用altool插件 使用altool插件与使用其他插件一样容易。 首先,通过运行以下命令将其添加到您的项目中: fastlane add_plugin altool 此插件的唯一先决条件是必须安装Fastlane,此插件具有可配置的Apple ID和密码,但您可能不想在配置中编写该值。 您需要使用FASTLANE_USER和FASTLANE_PASSWORD环境变量设置进行Fastlane设置。 当您运行fastlane init时,Fastlane会询问它,但如果没有,则必须设置这些变量。 您可以轻松地为bash shell设置它 $ export FASTLANE_USER =“ your_apple_id@yourcompany.com”; $ export FASTLANE_PASSWORD =“ your_super_xecret_password”; 如果您不使用bash,也可以对外壳进行选择。此插件可用于使用Gym将生成的ipa文件上传到iTunes Connect。 安装后,我们可以使用以下配置参数轻松配置插件 […]

xcodebuild:从命令行部署iOS应用

将iOS应用程序部署到iTunes Connect涉及各种事情,这既耗时又脆弱。 对于iOS开发人员来说,使用Xcode来构建,测试,存档和上传应用程序到iTunes Connect是非常普遍的做法。 幸运的是,Apple具有执行所有这些操作的命令行工具,并且最受欢迎的实用程序之一是xcodebuild。 Apple Developer工具上有一个名为Fastlane的精美包装器,可用于脚本编写iOS应用程序的部署。 您可能想知道为什么我们需要使用命令行来部署iOS应用程序。 您能想象没有Xcode的日子吗? 还是可以考虑从没有GUI访问权限的服务器上部署应用程序? 或者,如果您没有Ruby的脚本编写技能来使用Fastlane,该怎么办? 在构建,测试,存档和上传应用程序时,我们必须知道幕后发生的事情。 我们应该知道用于所有这些活动的本地Apple开发人员工具。 通过学习命令行交互,我们可以获得以下好处 深入了解在构建,部署iOS应用程序时使用的基本Apple技术。 易于自动化iOS开发任务以实现持续集成或基于云的服务器 更好地了解Fastlane等工具在后台执行的操作。 在本文中,我们将了解如何构建,测试,存档示例iOS应用程序并将其部署到iTunes Connect。 前提条件 为了了解命令行部署过程,我们应该预先设置以下内容。 带有Xcode工作区的示例应用程序。 例如CLI.xcworkspace 具有发布配置的Xcode方案: CLI发行 在iTunes Connect中生产的证书,AppID,置备配置文件设置。 使用Apple的文档来设置所有内容。 在本教程中,我们将假定配置配置文件CLI分发配置文件。 钥匙串中具有分发证书的macOS 我们将介绍从分析应用程序到使用xcodebuild部署到iTunes Connect的iOS应用程序的周期。 分析 在构建和测试iOS应用之前,要做的明智的事情之一是对源代码执行静态分析。 xcodebuild具有清除和分析源代码中任何常见语法错误的功能。 我们可以传递Xcode项目,例如CLI.xcodeproj $ xcodebuild -project CLI.xcodeproj -scheme CLI -sdk iphonesimulator10.3干净的分析 建造 我们可以使用xcodebuild’build’操作构建一个iOS应用程序,该操作会为我们的iOS应用程序生成派生数据。 构建应用后,它可以在模拟器中运行,也可以由测试包使用。 运行运行 我们可以使用简单的命令简单地构建应用程序以在模拟器中运行 $ xcodebuild -scheme CLI -workspace CLI.xcworkspace […]

iOS代码签名教程系列

我刚刚在个人博客(也称为XCBlog)上发布了有关iOS代码签名主题的一系列博客文章,以介绍iOS代码签名过程的基础。 不幸的是,它的内容太多,无法像在Medium上那样重新发布,因此我将在这里共享链接。 代码签名和配置文件配置文件一直是一个烦人的问题,并且将继续存在,直到iOS开发人员完全了解代码签名的基础。 本系列文章涵盖了iOS代码签名过程的基础。 尽管在线上有多种资源可用,并且Apple拥有有关代码签名过程的整洁文档,但这仍然是一个谜。 在本系列中,我们将尝试从头开始理解代码签名过程,包括代码签名到实际代码签名过程本身所需的内容。 只要适用,我们还将探索GUI以及命令行处理方式。 我们将从“证书签名请求”开始获取iOS开发证书,然后介绍证书及其内部部分。 了解证书后,我们将深入研究配置文件,最后,我们将了解代码签名过程。 通过对Web和Apple文档进行一些研究,可以用我自己的文字或语言写这些系列文章。 我已在最后一篇文章中介绍了所有这些参考资料。 我还附上了Apple Developer Portal和Xcode的一些屏幕截图,以便读者可以理解这些概念。 我试图隐藏所有敏感内容,但是如果有错误暴露的地方,请不要骇我。 iOS代码签名:1.入门 iOS代码签名:2.证书签名请求 iOS代码签名:3.证书 iOS代码签名:4.设置配置文件 iOS代码签名:5.签名iOS应用 ****************************************************** **** 希望您会喜欢本系列的iOS代码签名。 如果有一些误导信息,请随时与我联系。 像XCBlog的 XCTEQ 发布的帖子一样 ? 您可能还喜欢我们的一些服务,例如访客博客或Mobile DevOps(CI / CD)或测试自动化。 在 Github 上 搜索我们的 服务 ,开源项目, 或者在 Twitter , Facebook , Youtube 和 LinkedIn 上关注我们 。 下载我们的 XCBlog iOS应用程序以离线阅读博客。 X CTEQ 是一家专门从事基于Mobile DevOps,CI […]

没有Fastlane的iOS连续交付的五个选项

原始文章发表在XCBlog上 Fastlane工具可自动执行整个iOS CI / CD管道,并允许我们将iOS基础结构保留为代码。 Fastlane提供了一系列工具,可自动执行从分析,构建,测试,代码签名和存档iOS应用程序的几乎所有操作。 但是,如果您向里看,它不过是本机Apple开发人员工具之上的Ruby层。 在某些情况下,Fastlane可能节省了一些时间,但是值得一提的是,Fastlane因频繁的重大更改而浪费了多少开发人员时间。 不断学习Ruby和Fastlane的自动化方法浪费了很多开发人员的时间。 像CocoaPods一样,Fastlane可能是您的iOS项目中使用Ruby的另一个大笨蛋,它与iOS开发无关。 学习某些本地Apple开发人员工具并从iOS开发工具箱中完全删除Ruby和其他第三方工具(如Fastlane)并不难。 在这篇文章中,我们将介绍iOS开发人员在使用Fastlane时面临的问题,以及Fastlane的当前替代方案。 五个快速通道问题 Fastlane声称通过自动执行常见任务为开发人员节省了时间。 在Fastlane能够按预期工作的情况下可能确实如此,但考虑到Fastlane在设置,调试和管理方面浪费了多少开发人员时间,这一点也很重要。 在本节中,我们将看到iOS开发人员使用Fastlane可能面临的常见问题。 1.红宝石 在iOS项目中使用Fastlane的第一个主要问题是Ruby。 通常,iOS开发人员并不擅长Ruby,但是要使用Fastlane或CocoaPods之类的工具,他们必须学习与实际的iOS开发无关的Ruby。 设置Fastlane工具需要对Ruby以及RubyGems和Bundler的工作方式有很好的了解。 最近宣布有Swift版本的Fastlane摆脱了Ruby,但它只是Swift在后台执行Ruby命令。 我怀疑Swift版本的Fastlane的可用性。 我已经在这篇文章中写了我的初步印象。 Fastlane拥有良好的文档,但是iOS开发人员仍然必须使用Ruby编写脚本来自动化iOS发布管道的所有基础架构。 2.频繁更新 Apple不断更改本机工具,从而不断破坏Fastlane工具。 他们需要始终追赶苹果和谷歌(如果是Android的话),以适应Fastlane中的这些变化。 这要求Fastlane开发人员实现这些功能并发布新版本的Fastlane。 如果Fastlane版本不是由Bundler管理,则大多数时候更新Fastlane版本都需要更新现有的Fastlane脚本。 由于更新的缘故,可能会经常导致内部版本崩溃,iOS开发人员需要花费时间来分析Fastlane中已更改的内容并相应地修复内部版本。 这种突破性的更新打扰了iOS开发人员的主要开发流程,最终浪费了数小时来修复构建。 使用Fastlane的痛苦之一是,在早期版本的Fastlane中配置的选项并不总是与较新的版本一起使用,如果您搜索解决方案,则最终将获得针对不同版本Fastlane的相同问题的多个解决方案。 3.耗时的设置和维护 尽管Fastlane提供了很好的模板代码入门指南,但是编写脚本来自动化iOS发布管道所需的所有内容并不是一件容易的事。 我们可能需要根据需要自定义选项,这要求这些选项在Fastlanes中的编码方式。 然后,我们可以使用不同的通道来编写管道脚本。 要设置所有内容,需要大量时间来学习Fastlane和Ruby工具箱。 当您设置所需的所有内容时,该工作并未完成,如上所述,它需要对Fastlane更新进行持续的持续维护。 4.难以贡献 可能需要根据公司特定的规则配置iOS发布管道,或者需要Fastlane进行自定义操作。 唯一的选择就是为Fastlane编写插件。 当前,编写插件的唯一方法是编写可以作为Fastlane插件安装的Rubygem。 同样,它需要对Ruby生态系统的深入了解,而通常iOS开发人员都不熟练。 不幸的是,iOS开发人员无法为他们当前在工具箱中使用的工具做出贡献。 最重要的是,为Fastlane做出贡献的过程既耗时又充满自动化机器人。 首先创建一个Github问题作为提案,然后进行无休止的讨论。 您可以在此处阅读有关Fastlane贡献指南的更多信息。 5. Github上的未解决问题 GitHub上存在多个问题,其中一些问题是由自动bot封闭的,没有为用户提供正确的解决方案。 很好的例子是,我如何浪费几天来确定Fastlane匹配支持企业应用程序是否使用Xcode 9构建发行版。在寻找解决方案时,我发现还有其他人也在寻找解决方案。 这是Fastlane bot在未提供适当解决方案的情况下解决的未解决问题的示例。 我已经尝试过针对11090、10543、10325、10458等问题提供的多种解决方案。阅读所有这些内容之后,我无法弄清楚哪种方法适用于企业构建。 […]

我在2017年震惊的10件事:XCBlog的年终回顾

在新年前夜,我非常需要完成XCBlog的这篇评论结束才能感谢2017年。如果您是XCBlog的读者或关注者,无论是在我的个人博客上还是Medium或DZone上,您都必须对开发之外的iOS工程充满热情在Xcode中。 有数以百万计的开发人员使用Xcode编写Swift或Objective-C代码,但是当您跳出固有思维并热衷于深入探究iOS令人讨厌的事物时,真正的热情就会浮出水面。 XCBlog涵盖了疯狂的iOS工程活动,其中包括 深入了解iOS基础架构/生态系统 用于构建自动化,发布自动化,测试自动化和基础架构自动化的脚本 设置持续集成,持续交付管道 通过命令行处理代码签名,iOS构建设置 Swift的软件包和依赖管理 为CI / CD设置和设置macOS服务器 了解命令行Apple Developer工具 了解云连续集成服务 了解苹果的持续集成系统,即Xcode Server iOS DevOps 处理这些事情需要勇气和简洁,co夫永远不会触及这些领域。 这就是XCBlog在这里的原因。 我很高兴看到其他极客iOS工程师如何解决这些挑战,向他们学习,撰写并分享知识。 好。 回到主题,2017年是XCBlog最好的一年,我对2017年不胜感激。它为我提供了很多我可能无法用文字解释的东西,但我将尽力解释我在2017年取得的成就,学到的知识我很高兴与您分享我感到2017年的成就的几件事。 PS:如果您认为这篇文章中的内容是自夸,自夸或自我促进等,请提前道歉,但我需要这样做以保持我在2018年的热情,以尽我所能。 令我感到惊讶的是,我在2017年在我的个人博客上发布了63条帖子,并在Moonpig Engineering博客上发布了2条嘉宾帖子。这意味着该年度共有65篇帖子,每月5篇,每周1篇。 我今年显然写了很多书,并将继续写作。 我从2017年开始,撰写了关于Swift Package Manager-Dive Dive的博客文章,我计划于12月31日午夜发布该文章。 从那以后,我从未停下来,在一月份发表了10篇文章,并在全年进行。 我在1月和6月写了10篇文章,在9月写了9篇文章,这意味着我在这三个月中已经报道了一半。 我还在Moonpig工程博客上发表了两篇文章,分别在此处使用Fastlane的iOS持续交付和此处使用Ansible的iOS持续集成。 这意味着,我去年写了65篇以上的帖子。 我2017年的解决方案之一是为XCBlog发布iOS应用程序,我开始着手研究。 幸运的是,我设法在4月做到了这一点,但没想到我可以制作出如此美观的应用程序。 您可以从iOS的App Store下载“ XCBlog”应用。 XCBlog iOS应用程序具有一些功能,可以离线阅读帖子,为帖子添加书签以及在整个博客中进行搜索等。 XCBlog已于今年在其他各种渠道上发布。 主要渠道是Apple News,DZone和Medium。 您也可以阅读这些来源上的所有XCBlog帖子。 在Apple News中,您可以搜索XCBlog频道以获取Apple News中的所有内容。 XCBlog在Medium也有专门的频道,您可以在这里找到Medium频道 XCBlog也定期在DZone上发布,我已经在DZone上获得了“最有价值的Blogger”徽章,用于iOS DevOps和Continuous Delivery上的帖子。 您可以在此处阅读DZone上的所有XCBlog帖子 我还在LinkedIn和Facebook上发布了帖子,以便可以吸引更多人。 […]

Fastlane Swift for iOS的第一印象

原始文章:原始文章已发布在我的个人博客XCBlog上,继续阅读 此处 以获得更好的图形。 要阅读有关iOS DevOps和iOS CI / CD的更多有趣文章,请 在此处 访问我的博客 。 Fastlane刚刚从2.69.0版开始支持Swift,这意味着iOS开发人员不再需要编写Ruby代码来在iOS或macOS项目中配置Fastlane。 Fastlane是自动执行iOS部署,发行和各种常见的iOS开发任务(如代码签名,从Apple开发人员门户网站管理预配配置文件,证书和版本)的出色工具之一。 Fastlane提供了编程实现以自动化所有这些任务,因此我们可以在任何CI服务器上设置“持续集成”和“持续交付”。 但是,iOS开发人员必须学习和编写一些Ruby代码才能在项目中配置Fastlane,这是有效使用Fastlane的障碍之一。 传统上,iOS开发人员精通Objective-C或Swift,但不精通Bash,Ruby,Python等脚本语言。 幸运的是,Fastlane宣布了对Swift的支持,因此我们可以使用Apple的Swift编程语言为iOS应用配置CI / CD设置。 在这篇文章中,我将分享使用Swift版本的Fastlane的第一印象。 Fastlane Swift入门 Fastlane在此处添加了有关如何开始使用Fastlane Swift的简要文档,但是我们将看到它的实际效果。 首先要注意的是,即使Fastlane提供了Swift支持,它仍然打包为Rubygem,您仍然必须使用Rubygem使用以下命令安装Fastlane $宝石安装fastlane 安装所有必需的依赖项可能需要几分钟。 如果您使用的是默认macOS随附的系统Ruby,则可能需要使用sudo。 安装后,我们必须确保您具有2.69.0以上的Fastlane版本才能与Swift一起使用。 我们可以使用fastlane -v命令进行检查。 现在,让我们在Xcode中创建一个单视图iOS项目FastlaneSwift-Demo。 为了检查Cocoapods的支持,让我们在Podfile中添加一些依赖项。 现在,我们将使用以下命令为该项目启动Fastlane。 $ fastlane init迅速 通过询问一些有关您的凭据,应用程序标识符,方案的问题,这将像往常一样设置我们的项目,您应该能够轻松完成设置。 一切完成后,您将看到位于以下位置的消息,提示打开Xcode项目 $ ./fastlane/swift/FastlaneRunner/FastlaneRunner.xcodeproj 这是一个附加的Xcode项目,以便在Xcode中配置Fastfile并具有所有自动完成功能和语法突出显示功能。 在这一点上,您可以使用Swift来配置通道。 但是,如果您想看看发生了什么,您可能会注意到Fastlane在fastlane目录中创建了8个目录和34个Swift文件。 使用Fastlane Swift 现在,让我们打开Xcode项目FastlaneRunner.xcodeproj,以了解其中的内容。 我们将看到这样的项目结构: 我们可以看到,所有配置(例如Fastfile)现在都是用Swift编写的。 现在我们可以使用Swift方法创建车道。 我们可以带车道直接使用所有可用的Fastlane动作。 现在,让我们配置单元测试和UI测试以与Fastlane一起运行。 如您所见,Fastfile已经创建了lane testLane()来运行我们可以直接使用执行的测试 $ […]