使用Bitrise自动化您的iOS应用

使用Bitrise四个月后,我觉得我应该与社区分享此工具的强大功能。 快速介绍自动化并了解为什么我们确实需要自动化工具将是很好的。 让我们从快速介绍iOS自动化开始,看看新工具如何加快我们的开发速度。

开发,测试和部署团队需要大量的精力和时间。 特别是,如果要手动执行所有这些步骤。 您必须在每个步骤上都小心谨慎,以避免可能的错误。 使整个开发/测试过程自动化可以提高软件产品的质量,并为您和您的团队节省大量时间。

在自动化过程中,您应该了解一些步骤,例如持续集成,持续交付和持续部署。 让我们简要地解释一下它们:

持续集成

假设您的团队有多个开发人员从事同一项目,而您正在从事Git。 假设一个开发人员发出了“拉取请求”,则所有单元测试都可以在共享计算机(远程或本地)上运行。 测试完成运行后,您知道它们成功或失败。 如果测试通过,则可以开始进行代码审查。 否则,开发人员将收到测试失败的通知,应进行某些修复。 一切准备就绪后,可以轻松合并代码。 此过程称为持续集成,它可以帮助您自动进行开发,测试和集成过程,而不会浪费大量时间。

持续交付

功能或冲刺的每个构建周期称为“持续交付”。 您可以交付功能/冲刺分支以进行持续集成。

如果您已经知道Stack OverflowTrello的联合创始人Joel Spolsky ,您可能听说过他有一个名为“ Joel Test”的测试。 它衡量软件开发团队的素质,以获取更好的代码。 “进行日常构建”是为他改进代码的重要步骤之一。 如果要检查所有步骤,请单击下面的链接:

Joel测试:改进代码的12个步骤

您听说过SEMA吗? 这是一个相当深奥的系统,用于衡量软件团队的水平。 不,等等! 别…

www.joelonsoftware.com

持续部署

我认为自动化最迷人的部分是持续部署。 假设您的开发分支已经过测试,可以部署了,Continuous Deployment允许您直接从存储库中上传应用程序。

大多数iOS开发人员认为部署是开发过程中最痛苦的部分之一。 因为有多个步骤将应用程序部署到App Store,并且如果出现错误或问题,您会在过程的“任何”状态下看到一个错误窗口。 确实很烦人,因为您必须对应用程序进行签名,存档并将其上传到iTunes Connect。 如果发生错误,半小时后您甚至可能会看到错误消息。 因此,您应该使其自动化,这样您就不会再浪费太多时间。


我希望本摘要有助于在了解Bitrise之前了解持续集成/交付/部署之间的区别。

有很多自动化工具,例如Jenkins,Travis,Circle,Buddybuild和Bitrise。 他们每个人都提供不同的解决方案和经验。

我决定使用Bitrise代替其他工具。 因为Bitrise:

  • 专为移动应用而构建,
  • 有一个免费的CI计划,没有时间限制,
  • 拥有良好的用户体验,
  • 有充分的文档证明,并且部分开源;
  • 拥有快速响应的技术支持服务。

我仍然很高兴做出决定😊还有其他一些原因也喜欢Bitrise,我想在教程部分中展示它们🖖

让我们潜入吧!

创建一个新的仓库

在本教程中,我已经在GitHub上创建了一个公共仓库(也可以私下创建)。 您可以在Bitbucket或Gitlab上创建存储库,Bitrise也支持它们。

创建一个新的Xcode项目

创建一个空的Xcode项目。 在其中添加一些简单的单元测试。 将其推送到存储库。

在Bitrise上创建一个新应用

如果您没有Bitrise帐户,则可以从此处创建一个。 向Bitrise添加应用非常容易。

注册后,请按照以下步骤操作:

  • 点击“添加您的第一个应用程序”按钮。
  • 选择您的应用的所有者和隐私。
  • 连接存储库。
  • 选择一个分支。 我建议您选择“ master”,因为您的基础分支将是“ master”。 可能您会将发布版本保留在此分支上。
  • 选择分支后,验证您的应用程序。 在执行此操作之前,请确保已从Xcode方案设置中选中“共享”框。
  • 验证后选择项目(或工作区)路径。 在本教程中,我选择了BitriseExample.xcodeproj 。 但是,如果您正在使用Cocoapods或要在工作空间上运行,则应根据工作空间选择路径。
  • 选择方案名称。 对我而言, BitriseExample应该是您的项目名称。
  • 选择“ ipa导出方法”。 您可以稍后进行更改,因此,现在选择“开发”。
  • 选择您要运行应用程序的堆栈。 我建议您选择与计算机上已使用的Xcode和macOS版本相同的堆栈。 否则,您可能会看到构建失败。 如果您是第一次运行构建,这是重要的一步。
  • 让Bitrise为您注册一个Webhook。

而已! 容易吧?


恭喜你! 您已成功添加您的第一个应用程序!

以下是有关您应用的第一个版本的详细信息。 我认为此屏幕上最重要的部分是日志。 如果您的版本是红色的,则找出问题非常有用。 我们确定该应用程序正常运行,并且所有单元测试均已通过!

日志印刷精美,我认为它可以帮助您清楚地理解。

工作流程编辑器

按照您的工作流程中的步骤运行构建。

默认情况下有2个工作流程:

  • 主要的:这是默认的工作流程,可让您从存储库中克隆您的应用程序,并在需要时安装Cocoapods / Carthage,运行您的应用程序并进行单元/ UI测试。
  • 部署:如果要将应用程序部署到iTunes Connect(TestFlight或App Store),请使用此工作流程。

开始时,这两个工作流程足以满足默认配置的需要。

上图演示了工作流编辑器的外观。 您可以编辑或删除步骤,也可以创建新步骤或重新排序。 添加或配置步骤是如此简单而有趣!

单击步骤之间的任何“加号”按钮,您将看到可以添加到工作流程中的所有步骤。 如果只想查看iOS / macOS工具,请单击屏幕右上方的Apple图标。

工作流编辑器是一个非常有用且功能强大的工具。 而且它现在也是开源的。

扳机

我们可以从应用程序详细信息屏幕手动运行构建。 但是,如何以及何时运行构建以自动化开发过程? 有触发器。 在下面的示例中,我试图解释触发器如何工作。

例如,此触发器表示:

当某人向“ master”分支(或所需分支)发出“拉取请求”时,触发“主要”工作流程。

这样,在您开始查看代码之前,build将在后台自动运行。

如果要在有人在任何分支上标记新版本时运行部署工作流,也可以设置新触发器。

我试图解释Bitrise上最重要的功能。 如果要获取有关其他功能的更多信息,可以从编辑器中查看它们。

我不会详细解释部署过程,但是我想给出一些关键点,以了解您应该在“部署”工作流中提供哪些步骤。

配置“部署”工作流

好吧,您有一个默认的“部署”工作流。 让我们看看如何更新它以成功进行部署。 我假设您希望在项目上自动管理代码签名。 因此,我们的部署工作流程必须包含“ iOS自动配置”步骤。

  • 证书和配置文件安装程序步骤替换为iOS自动配置步骤。 在进行手动配置时,将使用证书和配置文件安装程序步骤。 在iOS自动配置步骤中编辑以下字段:
  1. 选择“分布类型” app-store
  2. 如果您的开发人员帐户关联了多个开发人员团队,请设置“开发人员门户团队ID”。 (假设您正在使用Application Loader来管理多个开发人员团队。)

有关更多详细信息:https://blog.bitrise.io/ios-auto-provision-step

  • 添加“ 设置Xcode项目内部版本号”步骤。

这是至关重要的步骤,可在将ipa文件上传到iTunes Connect时自动增加项目的内部版本号,以防止冲突。

键入info.plist文件路径。 对我来说是“ $ BITRISE_SOURCE_DIR / BitriseExample / Info.plist”

  • 如果使用,请在此处添加CocoapodsCarthage安装程序步骤。
  • 放置Xcode Test for iOS步骤。
  • 添加Xcode Archive&Export for iOS步骤。
  • 添加“ 部署到iTunes Connect-应用程序加载程序”步骤以验证iTunes Connect帐户。 您必须输入凭据作为隐私的秘密。 您将在此处找到相关说明。

如果您不使用任何依赖工具(如Cocoapods或Carthage),则工作流中最重要的步骤应如下所示。

在运行您的部署工作流之前,只有一件工作要做: 代码签名 。 只需按照工作流编辑器中“代码签名”选项卡上的说明进行操作,您就会发现它多么有趣和容易。

现在,我们准备部署! 单击应用程序详细信息中的“开始/计划构建”按钮,开始运行新的构建。

最后,您可以通过单击此处获得自述文件的标志,以显示您的上次构建状态:


让我们谈谈限制和定价计划。 有两个入门计划兴趣计划开发者计划。

在决定使用Bitrise之前,您应该考虑以下几点:

  • 将ipa文件存档并上传到iTunes Connect可能需要花费大量时间才能完成。 如果您正在处理一个大项目并按免费(业余爱好)计划运行,则每个构建都有10分钟的时间,因此它可能不足以完成。
  • 即使您通过个人帐户获得付费计划,也只能运行1个并发构建。 有时您需要同时运行多个开发分支或应用程序。 我认为如果您是一个小型团队,这并不是很重要,但是如果您的团队中有5个以上的人员,那么查看组织帐户会更好。 有一些选项可以增加组织帐户上的并发性,但是价格肯定会更高。

谢谢阅读!

使用任何新工具都需要花费时间和精力来使其适应您的工作流程。 您可能会面临学习曲线,团队提出的问题和一些限制。 那很正常

我在Bitrise上分享了我的经验,这适合我的开发结构和方法。

请让我知道您对使用CI / CD工具改进工作流程的想法! 我很好奇向您学习。 这是显示我在本教程中使用的示例应用程序的链接:

gultekingokhan /位例

tutorial教程中的示例存储库:“中等”上的“使用Bitrise自动化iOS应用” – gultekingokhan / bitrise-example

github.com

如果您还没有Bitrise帐户,可以使用下面的引荐链接进行注册。 这将使我有更多的免费构建时间。

Bitrise –移动持续集成和交付

您整个团队的移动持续集成和交付,以及您最喜欢的数十种集成…

app.bitrise.io


您可以在 GitHub Instagram Twitter LinkedIn 上关注我 以获取有关我的更多信息!