使用Bitrise自动化您的iOS应用
使用Bitrise四个月后,我觉得我应该与社区分享此工具的强大功能。 快速介绍自动化并了解为什么我们确实需要自动化工具将是很好的。 让我们从快速介绍iOS自动化开始,看看新工具如何加快我们的开发速度。
开发,测试和部署团队需要大量的精力和时间。 特别是,如果要手动执行所有这些步骤。 您必须在每个步骤上都小心谨慎,以避免可能的错误。 使整个开发/测试过程自动化可以提高软件产品的质量,并为您和您的团队节省大量时间。
在自动化过程中,您应该了解一些步骤,例如持续集成,持续交付和持续部署。 让我们简要地解释一下它们:
持续集成
假设您的团队有多个开发人员从事同一项目,而您正在从事Git。 假设一个开发人员发出了“拉取请求”,则所有单元测试都可以在共享计算机(远程或本地)上运行。 测试完成运行后,您知道它们成功或失败。 如果测试通过,则可以开始进行代码审查。 否则,开发人员将收到测试失败的通知,应进行某些修复。 一切准备就绪后,可以轻松合并代码。 此过程称为持续集成,它可以帮助您自动进行开发,测试和集成过程,而不会浪费大量时间。
持续交付
功能或冲刺的每个构建周期称为“持续交付”。 您可以交付功能/冲刺分支以进行持续集成。
如果您已经知道Stack Overflow和Trello的联合创始人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自动配置步骤中编辑以下字段:
- 选择“分布类型”
app-store
- 如果您的开发人员帐户关联了多个开发人员团队,请设置“开发人员门户团队ID”。 (假设您正在使用Application Loader来管理多个开发人员团队。)
有关更多详细信息:https://blog.bitrise.io/ios-auto-provision-step
- 添加“ 设置Xcode项目内部版本号”步骤。
这是至关重要的步骤,可在将ipa文件上传到iTunes Connect时自动增加项目的内部版本号,以防止冲突。
键入info.plist文件路径。 对我来说是“ $ BITRISE_SOURCE_DIR / BitriseExample / Info.plist” 。
- 如果使用,请在此处添加Cocoapods或Carthage安装程序步骤。
- 放置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 上关注我 , 以获取有关我的更多信息!