Xcode项目的持续集成?

在使用Hudson与之前的项目进行持续集成之后,我想为我现在正在开发的iPhone项目build立一个持续集成服务器。 在做了一些研究之后,看起来似乎没有任何专门为Xcodedevise的CI引擎,但是有一个人使用Cruise Control和xcodebuild CLI工具结合使用 。 有没有人在这里试过? 是否有任何CI引擎与Xcode项目工作良好?

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

我成功地使用xcodebuild在mac上使用Hudson。 随着3.0 iPhone SDK的发布,您将对目标,configuration和sdk进行控制,以便构build项目。

就像在哈德森创build构build步骤一样简单,并告诉xcodebuild构build项目:

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

前期的工作为我带来了回报,因为我的build筑工作没有任何额外的想法。 如果有人有兴趣,我在博客上写了详细的描述。

iPhone应用程序分配变得容易

复活这个线程。 我没有find一个令人满意的解决scheme,让XCode在构build服务器上进行unit testing,所以我做了一些调查和编码。 结果是这个博客文章解释了这一切, 这个Ruby脚本将OCUnit输出从xcodebuild转换成JUnit用于testing报告的XML格式。 我select的构build服务器是Hudson 。

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

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

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

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

我build议查看关于该主题的wwdc 2013演示文稿。

我已经使用Xcode的CruiseControl(类似于Pragmatic Automation的build议),并取得了合理的成功。 我也非常熟悉CruiseControl,它的configuration格式设置比较可怕。

我也使用BuildBot来取得良好的效果,但发现它的优势并不能满足我的需求(在不同的系统中分布式的构build和报告)。 configurationbuildbot设置可能本身就是一门艺术,尽pipe这并不困难。 这本质上都是用Python编写脚本的。

由于哈德森已经上市,我推荐它作为持续整合的途径。 它有一个基于Web的界面(CruiseControl在我心目中的主要缺陷),并且在它所支持的各种系统中非常灵活。 你可以很容易和非常明显地调用命令行驱动的版本。 也就是说,我还没有使用Hudson和Xcode来创build一个实例,我已经在其他系统中使用这个实例,所以这只是我的一部分而已。

我想你应该仍然能够使用哈德森。 Hudson非常灵活,并允许您使用shell脚本来构build: Shell脚本和Windows批处理命令

只需input那里xcodebuild。 看看xcodebuild手册页来看看xcodebuild的选项。

如果你不介意生活在尖端,我刚刚提交了CruiseControl的Xcode生成器 。

jenkins似乎为一些人工作得很好。 (虽然之前我从未使用任何CI服务器。)

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

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

但是你必须意识到权威问题。 在Jenkinsconfiguration中几乎没有任何改动,你可以在很短的时间内pipe理你的CI服务器。

Interesting Posts