2018年:iOS版本和CI / CD流程的年度最大变化。 如何为2019做准备

原始链接:

2018年:iOS版本和CI / CD流程的年度最大变化。 如何为2019做准备

在2018年,Mobile DevOps和CI / CD世界被一些重要的公告和新闻所动摇。 这些公告是…

shashikantjagtap.net

2018年:iOS版本和CI / CD流程的年度最大变化。 如何为2019年做准备– XCTEQ

在2018年,Mobile DevOps和CI / CD世界被一些重要的公告和新闻所动摇。 这些公告是…

www.xcteq.co.uk

在2018年,Mobile DevOps和CI / CD世界被一些重要的公告和新闻所动摇。 这些公告来自Apple或开源社区,但是这些公告肯定会改变传统的iOS应用CI / CD制作方式。 在本文中,我们将回顾2018年,展望2019年。我们将看到2018年iOS应用程序的Mobile DevOps和Continuous Delivery中发生了哪些变化,以及它将如何影响iOS中的iOS版本和CI / CD流程。 2019。

在2018年的元旦,苹果收购了BuddyBuild,Mobile DevOps中的情况发生了巨大变化。 BuddyBuild是针对移动应用程序的出色云CI / CD服务之一。 自从BuddyBuild成为Apple的一部分以来,他们就停止了对Android应用程序的支持。 也停止了为iOS应用吸引新客户。 这对于使用Android和iOS的BuddyBuild服务的公司来说,是一个巨大的震惊。 这些公司需要为Android应用程序寻找另一项CI / CD服务,这将导致昂贵的迁移工作。 对于使用基于云的CI / CD服务的公司来说,这也是一个重要的教训,这使他们思考是内部管理移动基础架构还是将其外包给其他公司。 我们在这里介绍了内部管理移动DevOps基础架构的利弊。 苹果与BuddyBuild的合并也使Xcode Serve的未来成为问题。 对于目前使用Xcode Server的公司来说,这也是一个警钟。

  • 寻找适用于Android和iOS的通用跨平台移动CI / CD解决方案吗? 现在该寻找适合于项目基础架构的其他移动专用CI / CD服务,例如Travis CI,Nevercode,Bitrise,Circle CI等。 或者,如果您有专门技能的资源,则可以使用Jenkins,TeamCity等在内部管理移动基础架构。
  • 寻找仅限iOS的解决方案? 等到WWDC之前,Apple + BuddyBuild必须提供什么,然后再转移到任何其他服务。
  • 现有的Xcode Server用户可以按原样继续使用,直到我们得到有关Xcode Server未来的消息。

2018年的另一个重大新闻是苹果宣布AppStore Connect API。 在WWDC 2018上,已经宣布了官方API与Apple Developer门户和iTunes Connect进行对话。 苹果还将Developer Portal和iTunes Connect合并在一起,并将其更名为“ App Store Connect”。 关于App Store Connect和自动实现App Store Connect的精彩WWDC会议

App Store Connect API是基于JWT(JSON Web令牌)的标准RESTful API,用于身份验证,可以从所有平台进行访问。 借助App Store Connect API,我们几乎可以自动化与App Store相关的所有内容,包括

  • 管理证书,配置文件,管理设备ID和捆绑软件ID
  • 管理App Store Connect的用户,角色和App访问权限
  • 管理TestFlight和Beta测试人员以及公共链接
  • 下载财务报告和销售报告

XCBlog在先前的文章中详细介绍了App Store Connect API。 App Store Connect API将从当前的CI / CD流程中删除许多第三方工具。 难怪市场上将会有数百种使用App Store Connect API的开源工具。

App Store Connect API将从当前的CI / CD流程中删除许多第三方工具。 难怪市场上将会有数百种使用App Store Connect API的开源工具。 准备使用这些闪亮的新工具,或者使用App Store Connect API编写自己的自定义工具来满足您的项目要求。

Fastlane已用于许多iOS应用程序的iOS部署管道自动化,并且到目前为止效果良好。 随着Apple大大改善了Xcode Server中的自动化工作流程,并且第三方CI / CD服务可以处理大多数底层自动化,因此使用Fastlane工具变得多余了。 Apple从未提供用于连接到Apple Developer门户或iTunes Connect的API。 这就是大多数iOS开发人员选择Fastlane来自动化iOS部署管道的原因。 但是,随着Apple宣布AppStore Connect API,大多数Fastlane工具将变得多余,并且迟早必须用本机Apple开发人员工具代替。 Fastlane社区在Twitter和Github上也变得安静,Fastlane CI上的项目也已弃用。 这表明Fastlane迟早必须退休。 准备使用闪亮的工具和App Store Connect API。

Fastlane工具(例如扫描,健身房)仍然可以很好地用于构建和测试iOS应用,但是迟早您将不得不采用基于App Store Connect API的新流程。 准备停用不再需要的Fastlane工具,例如登机。

迟早,您都必须迁移到新的工作流程,因此,开始准备新工具并从iOS项目中退出Fastlane和Ruby是一个好主意。

苹果已经推出了TestFlight公共链接支持,我们可以在其中共享链接并让人们测试Beta版应用程序。 公共链接最多可以发送到10K测试人员,但是我们可以设置限制。 可以随时禁用或启用链接以控制数字测试器。 可以使用App Store Connect API自动执行大多数TestFlight功能,例如创建组,将构建分配给组,管理公共链接,管理测试人员和测试信息。 连续交付的分阶段发行版+ TestFlight增强功能可以更好地协同工作,实现无畏发行。

开始使用TestFlight构建的公共链接,但共享时要小心。 在我们发布这些功能之前,存在将功能泄漏给公众的风险。 开始使用App Store Connect API自动化管理测试人员的过程,进行分组。 利用分阶段发布的优势来无风险地测试生产中的特定功能。

苹果还推出了“ App Store Connect” iOS应用程序,因此我们无需登录网站即可通过iOS设备执行几乎所有活动。 在iOS应用中,我们可以

  • 查看趋势,销售和更新,应用内购买,应用捆绑
  • 我们所有的应用程序和切换到开发团队的能力。
  • 详细的应用程序信息,发布/拒绝应用程序,管理用户评论并设置通知

iOS应用中有很多关于预购,应用内购买等的信息。

利用iOS应用程序从您的手机管理所有App Store Connect功能。

Xcode 10中默认已激活Xcode新构建系统。您可以在此处阅读新构建系统的完整发行说明。 我们在先前的博客文章中介绍了新构建系统的内部细节。 可以从Xcode文件->项目/工作区设置中激活新的构建设置 ,我们可以在旧版和新的构建系统之间切换。 在CI服务器上,从命令行使用xcodebuild,然后我们必须传递附加参数-UseModernBuildSystem = YES还将强制使用新的构建系统。 您可以在此处阅读有关Xcode新构建系统的更多信息,该新构建系统可以在以前的XCBlog上使用。 使用现代的构建系统,我们可以通过遵循此处提到的一些基本技巧来大大缩短Swift的构建时间。

Xcode新的构建系统旨在查找通常流程无法确定的问题。 我们可能需要调整我们的iOS应用程序,以帮助正确构建系统。 启用新的构建系统后,我们可能会遇到一些故障,我们应该即时修复这些故障。

市场上出现了许多基于AI的无代码移动测试工具,这些工具需要一个iOS应用程序,生成测试方案并在云中执行它们。 这些工具还会报告应用程序中的基本问题,而无需进行任何配置。 当前,市场上几乎没有基于AI / ML的移动测试工具,例如用于移动测试的test.ai。 Applitoolsus AI用于视觉回归测试。 Bitbar宣布了AI驱动的应用程序测试解决方案,也称为AI Testbot,可使用人工智能测试移动应用程序。 这些工具可能会改变将来进行质量检查活动的方式,以及如何使用基于AI的工具来支持iOS测试工作。

苹果还每年改进测试技术。 在2018年,已经通过创建仿真器的副本来并行化单个仿真器中的测试套件,从而宣布了对并行测试的支持更进一步。 Xcode在后台创建了一个不同的运行器进程,并且每个进程都分配了特定的测试。 这大大减少了测试执行。 有关Xcode并行测试的更多信息,请参见。

利用基于AI的测试工具来测试iOS应用程序,并为XCTest采用并行测试支持。

到目前为止,只有很少的选项可以将IPA文件部署到App Store Connect。 最常见的选项是本地Xcode,应用程序加载器,Fastlane,ITMSTrasporter或altool。 您可以在此处详细了解有关这些选项的详细信息。 但是,在2018年,我们有了更多选择来部署IPA文件

  • 从Linux服务器使用ITMSTrasporter。 详情在这里
  • 使用xcodebuild将IPA文件直接上传到App Store。 详情在这里

这将允许CI / CD服务器更平滑地甚至从Linux服务器将预生成的IPA文件上传到App Store。

使用xcodebuild工具使用exportOptionsPlist从命令行部署iOS应用。 尝试将IPA文件传输到linux服务器,并使用ITMSTransporter将应用程序部署到App Store。

随着移动应用程序的普及,大多数公司都需要架构来更快地构建移动应用程序。 因此,为了确保质量并在多个应用程序中重用现有代码,公司开始构建可重用的软件开发工具包(SDK)和库,以便可以在多个应用程序中轻松重用这些代码。 由于库代码会影响多个客户端,因此必须确保SDK的代码质量满足所有客户端的要求。 在大多数公司中,为主要应用程序设置了CI / CD基础结构,但对于库和SDK没有设置。 实际上,对于主应用程序而言,库和SDK的持续集成非常重要,甚至比CI更重要。

移动SDK的持续集成可以通过各种基于云的CI服务来实现,这是我在Nevercode博客上的示例帖子之一,该示例如何使用Nevercode来实现,但是可以通过当前正在使用的其他CI服务来实现。

在不久的将来,为iOS SDK和库添加CI的趋势肯定会增加,因此请在CI服务器上获取所有移动SDK和库。

GitHub已启动服务GitHub Action,该服务可用于基于Linux的Docker容器中的Swift包的CI / CD。 详细的博客文章此处介绍了如何使用Github Action for Swift软件包设置CI / CD。 Github Actions可被视为Github本身内置的GitHub自己的CI / CD解决方案。 开发人员可以使用GUI编辑器或从代码创建工作流。

当前,此服务仅限于基于Linux Docker的构建,但谁知道我们可以获取macOS映像来使用GitHub操作。 我们可以拭目以待,看看GitHub Actions在不久的将来会为iOS开发带来什么。

密切关注iOS CI / CD的GitHub Actions路线图。

在2018年,发生了很多好事以顺利发布iOS应用程序。 牢记所有这些新闻,我们可以为2019年做准备,并了解iOS版本和CI / CD流程的下一步。 希望我涵盖了2018年以来的大部分故事,请让我知道您的想法,如果我错过了任何事情也请与我联系

===================================

像XCBlog的XCTEQ发布的帖子一样? 您可能还会喜欢我们在 Github 上的一些开源项目, 或者在 Twitter LinkedIn 上关注我们