2000年Matin Fowler发表文章Continuous Integration【1】;2007年,Paul Duvall, Steve Matyas 和 Andrew Glover合著的《Continuous Integration:Improving Software Quality and Reducing Risk》 【2】出版发行,该书获得了2008年的图灵大奖。持续集成理念经过10多年的发展,已经成为了 业界的标准。在Java, Ruby的世界已经诞生了非常成熟的持续集成工具和实践,而对于iOS领域来说, 因为技术本身相对比较年轻和苹果与生俱来的封闭思想,在持续集成方面的发展相对滞后一些,但是, 随着越来越多的iOS开发者的涌入,以及各个互联网巨头加大对iOS开发的投入,诞生了一大批非常好用 的持续集成工具和服务,本文的目的就是介绍一下如何有效的利用这些类库,服务快速构建一个iOS开发 环境下的持续集成平台。
自动化构建
在MartinFowler的文章[1]中关于自动化的构建定 义如下:
Anyone should be able to bring in a virgin machine, check the sources out of the repository, issue a single command, and have a running system on their machine.
因此,自动化构建的的首要前提是有一个支持自动化构建的命令行 工具,可以让开发人员可以通过一个简单的命令运行当前项目。
命令行工具
自动化构 建的命令行工具比持续集成的概念要诞生得早很多,几十年前,Unix世界就已经有了Make,而Java世界 有Ant,Maven,以及当前最流行的Gradle,.Net世界则有Nant和MSBuild。作为以GUI和命令行操作结合 的完美性著称的苹果公司来说,当然也不会忘记为自己的封闭的iOS系统提供开发环境下命令行编译工具 :xcodebuild【3】
xcodebuild
在介绍xcodebuild之前,需要先弄清楚一些在XCode环 境下的一些概念【4】:
Workspace:简单来说,Workspace就是一个容器,在该容器中可以存放多个你创建的Xcode Project , 以及其他的项目中需要使用到的文件。使用Workspace的好处有,1),扩展项目的可视域,即可以在多 个项目之间跳转,重构,一个项目可以使用另一个项目的输出。Workspace会负责各个Project之间提供 各种相互依赖的关系;2),多个项目之间共享Build目录。
Project:指一个项目,该项目会负责管理生成一个或者多个软件产品的全部文件和配置,一个 Project可以包含多个Target。
Target:一个Target是指在一个Project中构建的一个产品,它包含了构建该产品的所有文件,以及 如何构建该产品的配置。
Scheme:一个定义好构建过程的Target成为一个Scheme。可在Scheme中定义的Target的构建过程有: Build/Run/Test/Profile/Analyze/Archive
BuildSetting:配置产品的Build设置,比方说,使用哪个Architectures?使用哪个版本的SDK?。 在Xcode Project中,有Project级别的Build Setting,也有Target级别的Build Setting。Build一个产 品时一定是针对某个Target的,因此,XCode中总是优先选择Target的Build Setting,如果Target没有 配置,则会使用Project的Build Setting。
弄清楚上面的这些概念之后,xcodebuild就很好理解了,官网上对其作用的描述如下:
xcodebuild builds one or more targets contained in an Xcode project, or builds a scheme contained in an Xcode workspace or Xcode project.
xcodebuild就是用了构建产品的命令行工具,其用法可以归结为3个部分:
可构建的对象
构建行为
一些其他的辅助命令
可以构建的对象有,默认情况下会运行project下的第一个target:
workspace:必须和“-scheme”一起使用,构建该workspace下的一个scheme。
project:当根目录下有多个Project的时候,必须使用“-project”指定project,然后会运行
target:构建某个Target
scheme:和“-workspace”一起使用,指定构建的scheme。
……
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索xcode
, scheme
, gradle
, 命令
, project
, 项目
, xcode7.3
, xcode obje...
, ios 构建版本
, ios 构建版本错误
, target
, 持续集成
, 环信iOS集成
一个
每日构建 持续集成、持续集成构建、开发持续构建集成环境、持续集成 自动化测试、自动化持续集成,以便于您获取更多的相关知识。