Xcode项目的持续集成?

问题描述:

在使用Hudson与之前的项目进行持续集成之后,我想为我正在开发的iPhone项目建立一个持续集成服务器。在做了一些研究之后,看起来好像没有任何专门为Xcode设计的CI引擎,但是一个人已经成功了using Cruise Control combined with the xcodebuild CLI tool。有没有人在这里试过?是否有任何CI引擎可以与Xcode项目配合使用?Xcode项目的持续集成?

我可能会试一试克鲁斯控制。我会用我的发现发表一个答案。

+0

以上评论中的链接没有登录器工作 – 2012-01-23 11:07:51

+0

检查[rultor.com](http://www.rultor.com)。这是一个托管的解决方案[运行所有构建在独立的Docker容器中](http://www.yegor256.com/2014/07/29/docker-in-rultor.html)。据我所知,有可能在Docker中运行Xcode – yegor256 2014-08-03 17:30:59

+0

@ yegor256是否真的可以用Xcode运行Docker?我没有在Docker Hub找到OS X的基础映像:( – Ponf 2014-09-04 19:25:46

我用xcodebuild在mac上成功使用Hudson。随着3.0 iPhone sdk的发布,您可以对项目目标,配置和sdk进行控制,以便构建项目。

这是为创建在Hudson中构建步骤,并告诉xcodebuild联编建项目那样简单:

xcodebuild -target "myAppAppStore" -configuration "DistributionAppStore" -sdk iphoneos2.1 

的前期工作已见成效,我为我的建立只是没有任何额外的思想工作。如果有人感兴趣,我在博客上写了详细的描述。

iPhone app distribution made easy

Adium相当有效地使用了buildbot和Xcode。我们写了一个简单的makefile来调用xcodebuild的正确目标和配置,但我确定这是可选的。

+0

谢谢,我会检查出 – 2008-10-17 19:27:56

我认为你应该仍然能够使用哈德森。哈德森非常灵活,并允许您使用shell脚本进行编译:Shell Scripts and Windows Batch Commands

只需输入那里xcodebuild。看看xcodebuild手册页来查看xcodebuild的选项。

我已经使用CruiseControl和Xcode(类似于Pragmatic Automation的建议),并取得了合理的成功。我对CruiseControl也非常熟悉,它的配置格式设置相当可怕。

我也使用BuildBot来取得良好的效果,但发现它的优势并不能真正符合我的需求(分布式多个不同系统的分布式奴隶构建和报告)。配置buildbot设置可能本身就是一门艺术,尽管这并不困难。这本质上都是用Python编写脚本。

由于Hudson已经上市,我推荐它作为运行持续集成的途径。它有一个基于网络的界面(CruiseControl在我心目中的主要缺陷),并且在它支持的各种系统中非常灵活。你可以非常容易和非常明显地调用命令行驱动的构建。也就是说,我没有使用Hudson和Xcode来创建一个实例,我已经在其他系统中使用这个实例,所以这是我的一部分推测。

如果您不介意生活在尖端,我刚刚为CruiseControl提交了一个xcode builder

复活这个线程。我没有找到一个令人满意的解决方案,通过在构建服务器上进行单元测试来实现XCode的自动化,所以我做了一些调查和编码。结果是this blog post解释了这一切,并且this Ruby script将OCUnit输出从xcodebuild转换为JUnit用于测试报告的XML格式。我选择的构建服务器是Hudson

更新2012年3月2日:我更新了这个使用一些自定义shell脚本来建立和运行。可用here。这不仅适用于持续集成,还可以在自己的机器上通过命令行进行构建。

詹金斯似乎对某些人来说效果不错。 (虽然我从来没有使用过任何CI服务器。)

https://wiki.jenkins-ci.org/display/JENKINS/Xcode+Plugin

詹金斯工作正常。 您可以通过编写自己的shell脚本来构建您的xcode项目,然后让Jenkins运行它,或者您也可以使用xcode插件。

但你必须意识到权威问题。在Jenkins配置中几乎没有什么调整,你可以在很短的时间内管理你的CI服务器。

苹果刚刚发布(2013年6月10日)OSX Mavericks(OS X 10.9)这个新的持续集成平台,这是我之前见过的集成度最高的持续集成解决方案。 它可以从developer.apple.com,这里在这个页面有详细信息:

https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/xcode_guide-continuous_integration/

我建议看看关于这个专题的WWDC 2013演示文稿。