在使用Hudson与之前的项目持续集成之后,我想为我正在研究的iPhone项目设置一个持续集成服务器.在做了一些研究之后,看起来没有专门为Xcode设计的CI引擎,但是有一个人使用Cruise Control和xcodebuild CLI工具取得了成功.这里有人试过吗?有没有适合Xcode项目的CI引擎?
我可能会试试Cruise Control.我会用我的发现发表一个答案.
我用xcodebuild在mac上成功使用Hudson.随着3.0 iPhone sdk的发布,您可以控制要针对项目构建的目标,配置和sdk.
它就像在hudson中创建构建步骤并告诉xcodebuild构建项目一样简单:
xcodebuild -target "myAppAppStore" -configuration "DistributionAppStore" -sdk iphoneos2.1
前期工作为我带来了回报,因为我的构建工作没有任何额外的想法.如果有兴趣的话,我已经在我的博客上写了详细的描述.
iPhone应用程序分发变得简单
恢复这个线程.我没有找到一个令人满意的解决方案,在构建服务器上通过单元测试获得自动XCode构建,因此我做了一些调查和编码.结果是这篇博客文章解释了所有这个Ruby脚本,它将OCUnit输出从xcodebuild转换为JUnit用于测试报告的XML格式.我选择的构建服务器是Hudson.
2012年3月2日更新:我已更新此内容以使用一些自定义shell脚本进行构建和运行.可在这里.它不仅适用于持续集成,还适用于您自己机器上的命令行构建.
Adium 非常有效地使用buildbot和Xcode.我们写了一个简单的makefile,用适当的目标和配置调用xcodebuild,但我很确定这是可选的.
Apple刚刚发布(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演示文稿.
我已经将CruiseControl与Xcode一起使用(类似于Pragmatic Automation建议的那样)并取得了相当的成功.我也非常熟悉CruiseControl,它的配置格式相对可怕.
我也使用BuildBot效果很好,但发现它的优势并不能真正满足我的需求(分布式奴隶构建和报告跨多个不同的系统).配置buildbot设置本身就是一门艺术,虽然并不困难.它基本上都是用python编写脚本的.
自Hudson推出以来,我建议将其作为运行持续集成的途径.它有一个基于Web的界面(CruiseControl在我的脑海中的主要缺陷),并且在它支持的各种系统中非常灵活.您可以非常轻松且非常明显地调用命令行驱动的构建.也就是说,我没有使用Hudson和Xcode建立一个实例,我已经为其他系统设置了实例,所以这是我的部分猜测.