56

在使用 Hudson 与之前的项目进行持续集成之后,我想为我现在正在处理的 iPhone 项目设置一个持续集成服务器。在做了一些研究之后,似乎没有任何专门为 Xcode 设计的 CI 引擎,但是有人成功地使用了 Cruise Control 和 xcodebuild CLI 工具。这里有人试过吗?是否有任何与 Xcode 项目配合良好的 CI 引擎?

我可能会尝试巡航控制。我会用我的发现发布答案。

4

9 回答 9

37

我在 Mac 上通过 xcodebuild 成功使用了 Hudson。随着 3.0 iPhone sdk 的发布,您可以完全控制要构建项目的目标、配置和 sdk。

就像在 hudson 中创建一个构建步骤并告诉 xcodebuild 构建项目一样简单:

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

前期工作为我带来了回报,因为我的构建无需任何额外思考就可以正常工作。如果有人感兴趣,我已经在我的博客上写了详细的描述。

iPhone 应用程序分发变得容易

于 2009-07-25T18:43:16.623 回答
13

复活这个线程。我没有找到令人满意的解决方案来在构建服务器上使用单元测试自动构建 XCode,因此我进行了一些调查和编码。结果是这篇博客文章解释了这一切,这个 Ruby 脚本将 OCUnit 输出从 xcodebuild 转换为 JUnit 用于测试报告的 XML 格式。我选择的构建服务器是Hudson

2012 年 3 月 2 日更新:我已对此进行了更新,以使用一些自定义 shell 脚本进行构建和运行。在这里可用。它不仅有利于持续集成,也有利于在您自己的机器上从命令行构建。

于 2010-01-31T18:29:24.337 回答
9

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

于 2008-10-17T17:39:09.807 回答
9

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 演示文稿。

于 2013-06-13T21:01:57.760 回答
8

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

我也使用 BuildBot 取得了很好的效果,但发现它的优势并不能真正满足我的需求(分布式从站构建和报告跨多个不同系统)。配置 buildbot 设置本身就是一门艺术,尽管它并不困难。这一切本质上都是用python编写脚本。

由于 Hudson 已经可用,我推荐它作为运行持续集成的途径。它有一个基于 Web 的界面(我认为 CruiseControl 的主要缺陷)并且在它支持的各种系统中非常灵活。您可以非常轻松且非常明显地调用命令行驱动的构建。也就是说,我还没有使用 Hudson 和 Xcode 设置实例,而我在其他系统中设置了实例,所以这部分是我的猜测。

于 2008-10-20T18:49:37.497 回答
4

我认为您应该仍然可以使用 Hudson。Hudson 非常灵活,还允许您使用 shell 脚本进行构建:Shell 脚本和 Windows 批处理命令

只需输入xcodebuild。查看 xcodebuild 手册页以查看 xcodebuild 的选项。

于 2008-10-18T14:30:16.570 回答
4

如果您不介意生活在最前沿,我刚刚为 CruiseControl提交了一个xcode 构建器。

于 2008-11-27T11:30:37.397 回答
1

詹金斯似乎对某些人很有效。(虽然,我之前从未使用过任何 CI 服务器。)

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

于 2012-06-07T17:03:48.647 回答
0

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

但是你必须意识到权限问题。只需对 Jenkins 配置稍作调整,您就可以在很短的时间内管理您的 CI 服务器。

于 2012-08-21T02:00:14.837 回答