苹果收购BuddyBuild。 哦,我的Xcode服务器!

最初发布于XCBlog。 在这里阅读

我没想到这将是我2018年的第一篇博客文章。在假期里,我读了“ Apple Buys BuddyBuild”的推文,使我大为震惊,我眨了眨眼,再次阅读了这条推文。 我迅速检查了BuddyBuild的Twitter句柄,没有任何鸣叫,在Google上进行了搜索,发现Tech Crunch,CNBC和BuddyBuild博客确认了此消息。

考虑到我在iOS DevOps和CI / CD上所做的工作,对于我来说,这个消息无疑是令人振奋的消息。 我拿起电话并在Twitter上向丹尼斯表示祝贺。

不久之后,我亲自认识了BuddyBuild团队,并把一包T恤交付给我,以参加我在iOS CI Olympics 2017上的工作。 2017年10月的聚会。

我在运行iOS CI Olympics 2017时与BuddyBuild联系。我对iOS持续集成和持续交付充满热情,我用20种不同的标准对基于云的iOS 5前5名服务进行了Olympics,BuddyBuild成为了赢家。 您可以在此处阅读系列博客文章

  • 介绍性博客文章中提到了iOS CI奥运会的目的和规则。
  • 玩家表现之一:BuddyBuild
  • 玩家表现二:Bitrise
  • 玩家表现三:TravisCI
  • 玩家表现四:Nevercode
  • 玩家表现五:CircleCI
  • iOS CI奥运会获胜者公告

最终的奖牌如下所示: BB = BuddyBuild BR = Bitrise TC = TravisCI NC = NeverCode CC = CircleCI

在评估过程中,我得到了BuddyBuild团队的大力支持,以了解BuddyBuild的关键概念和工作方式。 随着BuddyBuild成为获胜者,他们将奥运会的结果发布在BuddyBuild博客上iOS持续集成与部署比较

BuddyBuild给我寄了一些T恤,我把它们分发给Yoox Net-A-Porter的同事。

尽管我非常喜欢BuddyBuild,但由于我们使用TravisCI,所以我从未尝试将其用于正在处理的项目,并且我已经建立了完全自动化的端到端管道,以使用Fastlane将iOS应用程序直接部署到iTunes Connect。 最近,我在iOS上安装了一些Xcode Server机器人,以在设备上获得临时构建并在真实设备上运行XCUITests。 我们一直在寻找新的构建系统,但是我对Apple开发人员工具的热爱从未使我脱离Xcode Server。 我非常喜欢Xcode Server,无论哪种方式,我都非常讨厌Xcode Server,因为我迷上了Xcode Server。 那是因为我对Apple开发人员工具的全部热爱。 我在Xcode Server上做了很多事情,例如

  • 为Xcode Server编写了Ansible角色来管理Mac Mini。 在这里阅读详细的帖子
  • Xcode Server集成了Xcode代码诊断工具。 详细的帖子在这里
  • 与Xcode Server机器人集成了Slack。 详细的帖子在这里
  • 撰写了有关设置无线安装的详细指南。 详细的帖子在这里
  • 抱怨它在Twitter上的陷阱,并向Apple提交了错误。 在此处阅读限制。 苹果关闭了我在Xcode Server上的Pull Request测试上的错误报告,该报告是重复的,但从未提供原始错误的详细信息。
  • 在WWDC 2017在Xcode Server上进行讨论之后,立即发布具有最新Xcode Server功能的博客。 在此处阅读Xcode Server + Xcode 9博客

到目前为止,我所做的所有这些事情看起来都是徒劳的。 我不知道Xcode Server现在会发生什么。 实际上,除了Pull Request测试支持之外,Xcode9和Xcode Server的表现还不错。 从代码签名,自动设备注册,真实设备测试到无线安装,几乎所有内容都变得如此轻松。 除了Pull请求测试外,它的表现要比Jenkins,TeamCity和其他自托管CI解决方案好得多。

现在,我很想看看苹果将如何使用Xcode Server,他们会完全杀死它吗? 否则他们将继续保持其自托管CI解决方案,而BuddyBuild成为Cloud CI解决方案。 激动人心的时刻!

最新的Xcode Server几乎消除了对Fastlane的需求,因为一切都内置在Xcode Server中。 BuddyBuild会猜测仓库中所有在Xcode项目上寻找的东西,然后自己做几乎不需要Fastlane的事情。 但是,它可以很好地用于在TravisCI或CircleCI上成功设置脚本化管道,因为它们不会猜测任何内容。 一切都必须编写脚本。 关于Fastlane的烦人的事情是他们试图做太多,实际上真的太多了。 几乎每天都会发布新版本。 永远追逐苹果,追逐谷歌,追逐第三方集成等。保持冷静,快车道!

如今,Swift版本的Fastlane极其疯狂,无法执行Ruby命令。 我在这里写了关于Fastlane Swift的第一印象。 看看Fastlane在竞争激烈的iOS CI / CD世界中的表现将很有趣。

这纯粹是我的个人观点,但我认为Apple并不是问题,不是第三方。 基本问题仍然存在于iOS开发人员的业余世界中。 我并不是说全部,但大多数iOS开发人员只知道Xcode和少数Apple框架,他们可以编写复杂的Objective-C / Swift代码,但不能从终端运行单个命令。 您如何期望他们学习Xcode用于执行所有iOS开发活动(例如构建,测试,归档等)的基础工具? 您如何期望他们使用Codesign,xcodebuild,plistbuddy,agvtool等工具来编写iOS CI / CD管道脚本。 这些懒惰的窃听者希望Xcode为他们做所有这些事情,如果出现问题,他们必须投入很多精力。 一些经验丰富的开发人员因进行iOS开发而灰白,但仍然发现很难处理代码签名活动。 一些开发人员擅长编写脚本,并且了解所有这些工具,他们永远不会遇到这些问题,或者他们不需要任何自动解决方案来处理CI / CD。 他们应该了解一个简单的事实,即了解UIKit和某些Apple Framework并不能使他们成为优秀的iOS开发人员,他们还应该学习命令行工具和脚本语言来解决与CI / CD相关的问题。 他们应该控制脚本并按照自己的意愿去做,而不是有人猜测他们的想法并为他们做些事情。

我敢肯定,Apple知道这个问题,即iOS开发人员想要Xcode中的所有功能,并且不想使用脚本或命令行工具。 每年,苹果公司都会在Xcode中添加一些新的按钮,这些按钮在幕后起作用。 当t进入服务器时,所有内容都必须编写脚本。 Xcode Server是允许开发人员从Xcode本身执行CI的工具之一。 他们介绍并解决了Xcode中自动签名功能带来的代码签名难题。 简而言之,苹果正在努力使他们高兴。 收购BuddyBuild是处理Xcode一切的又一步。

看到将在WWDC 2018中宣布的内容将非常令人兴奋。可能会发生某些可能性

  • 苹果将​​Xcode Server保留为自托管CI服务,将BuddyBuild保留为Cloud CI服务。
  • BuddyBuild不支持开源项目,因此准备迁移到TravisCI,CircleCI或Bitrise。
  • 苹果可能会完全杀死Xcode Server,并且仅支持一项CI服务。 如果您在多个Mac Mini服务器上运行Xcode Bots,请准备好其他自托管CI解决方案,例如Jenkins,TeamCity等
  • 在WWDC 2018中期待Cloud Xcode Server或类似产品
  • 可能是设备实验室,用于在真实设备中的云中运行测试。 目前,没有配置项连接到云的设备。 我们必须使用某种服务,例如AWS Device farm,Saucelabs等
  • 忘记基础架构作为代码。 假设您将无法控制CI / CD管道。 让他们猜猜您的Xcode项目并做一些事情。 或依赖于UI配置浏览器或Xcode。
  • 准备将您的开发和发行证书从finder拖到Xcode或浏览器。 不用担心其他人会照顾代码签名活动,这将是惊人的。

BuddyBuild通过为客户提供优质服务和优质产品而成为市场领导者。 一群善良而才华横溢的人现在已经成为Apple的一部分。 祝他们好运,并期待今年取得好成绩。 祝贺丹尼斯和团队取得如此巨大的成就。 我们都很高兴看到您今年的建造!

像XCBlog的 XCTEQ 发布的帖子一样 您可能还喜欢我们的一些服务,例如访客博客或Mobile DevOps(CI / CD)或测试自动化。 Github 搜索我们的 服务 ,开源项目, 或者在 Twitter Facebook Youtube LinkedIn 上关注我们 下载我们的 XCBlog iOS应用程序以离线阅读博客。

X CTEQ 一家专门从事基于Mobile DevOps,CI / CD,Mobile,AI / ML的测试自动化Checkout XCTEQ产品和服务的公司, 网址 http://www.xcteq.co.uk 或写信给我们info@xcteq.co。英国..