Xcode项目的持续集成?
-
03-07-2019 - |
题
在使用Hudson与之前的项目持续集成之后,我想为我正在进行的iPhone项目设置一个持续集成服务器。在做了一些研究后,看起来没有专门为Xcode设计的CI引擎,但是一个人已经取得了成功使用Cruise Control结合xcodebuild CLI工具。这里有人试过吗?是否有任何CI引擎与Xcode项目配合良好?
我可能会试试Cruise Control。我会用我的发现发表一个答案。
解决方案
我在xcodebuild的mac上成功使用了Hudson。随着3.0 iPhone sdk的发布,您可以控制要针对项目构建的目标,配置和sdk。
就像在hudson中创建构建步骤并告诉xcodebuild构建项目一样简单:
xcodebuild -target "myAppAppStore" -configuration "DistributionAppStore" -sdk iphoneos2.1
前期工作为我带来了回报,因为我的构建工作没有任何额外的想法。如果有人有兴趣,我已经在我的博客上写了详细的描述。
其他提示
Adium正在非常有效地使用 buildbot 和Xcode。我们写了一个简单的makefile,用正确的目标和配置调用xcodebuild,但我很确定这是可选的。
Apple刚刚发布(2013年6月10日)OSX Mavericks(OS X 10.9)一个新的持续集成平台,这是我之前见过的最集成的持续集成解决方案。 它可以从developer.apple.com获得,此页面中有详细信息:
https://developer.apple.com/library / IOS /文档/的IDE /概念/ xcode_guide-continuous_integration /
我建议看看关于这个主题的wwdc 2013演示文稿。
我已经将CruiseControl与Xcode一起使用(类似于Pragmatic Automation建议的那样)并取得了合理的成功。我也非常熟悉CruiseControl,它的配置格式相对可怕。
我也使用了BuildBot效果很好,但发现它的优势并不能真正满足我的需求(分布式奴隶在多个不同系统中构建和报告)。配置buildbot设置本身就是一门艺术,虽然并不困难。它基本上都是用python编写脚本的。
自从Hudson上市以来,我建议将其作为运行持续集成的途径。它有一个基于Web的界面(CruiseControl在我的脑海中的主要缺陷),并且在它支持的各种系统中非常灵活。您可以非常轻松且非常明显地调用命令行驱动的构建。也就是说,我没有使用Hudson和Xcode建立一个实例,我在其他系统中也是如此,所以这部分是我的推测。
我认为你应该仍然可以使用Hudson。 Hudson非常灵活,允许您使用shell脚本进行构建: Shell脚本和Windows批处理命令
只需输入xcodebuild即可。查看xcodebuild手册页以查看xcodebuild的选项。
如果你不介意生活在最前沿,我只是提出了一个 xcode builder for CruiseControl。
詹金斯似乎对某些人有用。 (虽然我之前从未使用任何CI服务器。)
詹金斯工作正常。 您可以通过编写自己的shell脚本来构建您的xcode项目,然后让Jenkins运行它,或者您也可以使用xcode插件。
但你必须意识到权威问题。通过Jenkins配置中的少量调整,您将能够在很短的时间内管理CI服务器。