Xcode项目的持续集成?

57

在之前的项目中使用Hudson进行持续集成后,我现在想为正在开发的iPhone项目建立一个持续集成服务器。经过一些研究,看起来没有专门为Xcode设计的CI引擎,但是有人成功地将Cruise Control与xcodebuild CLI工具结合使用。这里有没有人尝试过?有没有任何适用于Xcode项目的CI引擎可用?

我可能会尝试使用Cruise Control。我会发布我的调查结果。


上面评论中的链接已经失效。 - Ilya Kochetov
@yegor256,使用Xcode运行Docker真的可能吗?我在Docker Hub上没有找到带有OS X的基础镜像:( - Ponf
9个回答

38

我成功地在Mac上使用Hudson和xcodebuild。随着3.0版的iPhone SDK发布,您可以完全控制项目要建立的目标、配置和SDK。

只需在Hudson中创建一个构建步骤,并告诉xcodebuild来构建项目即可:

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

我先前做的功课让我的构建工作得以轻松完成,无需额外考虑。如果有兴趣,我在我的博客上写了详细描述。

iPhone应用程序分发变得更加容易


14

重新启动这个帖子。我没有找到一个令人满意的解决方案来获取自动化的XCode构建和单元测试生成,因此我进行了一些调查和编码。结果是这篇博客文章说明了所有内容,以及这个Ruby脚本将xcodebuild中的OCUnit输出转换为JUnit用于测试报告的XML格式。我选择的构建服务器是Hudson

更新于2012年3月2日:我已更新为使用一些自定义的Shell脚本进行构建和运行。可以在这里找到。它不仅适用于持续集成,还适用于在您自己的计算机上从命令行构建。


10

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


6
Adium太棒了!(嗯...很抱歉离题了。我忍不住想表达一下赞赏之情) - pestophagous

10

太好了!Xcode终于有了一些适当的测试工具。 - LightningStryk

9

我曾使用过CruiseControl和Xcode(类似于Pragmatic Automation建议的方法),并取得了一定的成功。我对CruiseControl非常熟悉,但它的配置格式设置相对来说比较可怕。

我也使用过BuildBot,并取得了不错的效果,但发现其优点并不完全符合我的需求(在多个不同系统上分布式构建和报告)。虽然配置buildbot设置本身并不难,但这可以成为一种艺术,因为它基本上都是用Python编写脚本。

自从Hudson推出以来,我会建议使用它来运行持续集成。它有一个基于Web的界面(在我看来,这是CruiseControl的主要缺陷),而且在支持各种系统方面非常灵活。您可以轻松地调用基于命令行的构建,并且非常明显。话虽如此,我还没有使用Hudson和Xcode设置实例,而我已经为其他系统设置过,所以这部分是我推测的。


5

如果您不介意生活在技术尖端,我刚刚提交了一款适用于CruiseControl的Xcode构建器


5
我认为您仍然可以使用Hudson。 Hudson非常灵活,允许您使用shell脚本构建:Shell Scripts and Windows Batch Commands
只需在那里输入xcodebuild。查看xcodebuild手册以了解xcodebuild的选项。

2

1
Jenkins运行良好。 您可以编写自己的shell脚本来构建xcode项目,然后让Jenkins运行它,或者您也可以使用xcode插件。 但是您必须注意权限问题。通过对Jenkins配置进行一些小调整,您将能够在很短的时间内管理您的CI服务器。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接