美文网首页iOS DeveloperPlay-Xcode
使用 Xcode Server进行持续集成并自动部署到iTune

使用 Xcode Server进行持续集成并自动部署到iTune

作者: Miles_miles | 来源:发表于2017-04-14 15:48 被阅读462次

这篇文章中,我将介绍在Xmartlabs项目中,使用Xcode Server进行持续集成,并自动部署到iTunes Connect的一些经验,以及我所遇到问题。本文将描述我是如何解决其中的一些问题的,以期它可以帮助一些遇到相似情况的人。

已经有很多博客讲述如何设置Xcode Server,创建一个集成 bot(译者注:机器人,为便于理解与实践,本文中不翻),以及在
Xcode上浏览其结果(问题跟踪,测试代码覆盖率等)。然而,当你尝试一些更复杂的东西,你可能会遇到一些错误时,而这些错误一般很难找到描述解决办法的资源。

为什么我们需要有自己的CI(continuous integration)服务器?

几乎每个人都知道拥有CI服务器的好处:它可以自动分析代码,运行单元和UI测试,在其他有价值的任务中构建项目。如果代码出现问题,它会将结果通知可能引入该问题的人。 Xcode bot跟踪每个集成的所有新问题以及已解决的问题。对于新的问题,bot将显示一系列可能产生问题的提交。此外,我们不再需要处理所部署环境的配置文件和证书,从而允许团队中的任何人轻松发布新版本的应用程序。

总之,这允许程序员花更多的时间在应用程序开发上,而在应用程序集成和部署上花更少的时间。同时,确保代码有质量问题的可能性保持在最低。

设立Xcode Server

苹果公司的Xcode Server和持续集成指南,将为您提供有关如何设立和使用Xcode Server的良好入门。我们建议您首先阅读该指南,因为我们将不会具体介绍关于设立Xcode Server的基础知识。

Cocoapods&Fastlane

当我们安装了Xcode Server应用程序,并启用了Xcode Server服务,下一步便是安装Cocoapods和Fastlane。Fastlane将帮助我们完成许多常规任务,这些任务是构建项目和将应用程序上传到iTunes Connect所必需的。为了防止它们运行过程中出现权限问题,我们将仅仅为对应的构建者(译者注:builder user,构建用户,本文中简称构建者),安装所有gem,使用gem install --user-install some_gem命令来完成安装。另外,我们需要创建符号链接,来访问Cocoapods和Fastlane二进制文件,以便在我们的bot运行时访问它们。

在开始之前,通过将下面的这一行加入到~/.bashrc~/.bash_login文件内,将ruby bin文件夹包含到构建者的路径中:

# It may change depending on the ruby's version on your system
# 请根据你系统中ruby的版本来修改此处的版本号
export PATH="$PATH:/var/_xcsbuildd/.gem/ruby/2.0.0/bin"

现在开始安装gems:

$ sudo su - _xcsbuildd

$ gem install --user-install cocoapods
$ pod setup
$ ln -s `which pod` /Applications/Xcode.app/Contents/Developer/usr/bin/pod

$ gem install --user-install fastlane
$ ln -s `which fastlane` /Applications/Xcode.app/Contents/Developer/usr/bin/fastlane

邮件 & 通知

Xcode Server有一个很好的功能,能够根据集成结果向选定的人发送电子邮件。例如,如果因为项目没有编译通过,或者一些测试没有通过,而导致的集成失败,bot将发送电子邮件到最后提交者,通知其构建已经失败了。

由于我们使用Gmail帐户发送电子邮件,因此需要更改Xcode Server上的邮件服务的设置。首先在服务器上启用邮件服务,然后检查选项“Relay outgoing mail through ISP”。在选项对话框中,添加smtp.gmail.com:587,启用身份验证并输入有效的凭据。这就是让 Xcode Server使用您的Gmail帐户发送电子邮件需要的所有设置。

Snip20170414_11.png

原文:CI AND AUTOMATIC DEPLOYMENT TO ITUNES CONNECT WITH XCODE SERVER

作者:Miguel Revetria

译者:本人原创翻译,首发在cocoaChina

相关文章

网友评论

    本文标题:使用 Xcode Server进行持续集成并自动部署到iTune

    本文链接:https://www.haomeiwen.com/subject/lkowattx.html