我相信你将不得不选择 jenkins 或 xcode 服务器,而不是两者都选择。我对 xcode 服务器不太了解,但我确实了解 jenkins 和 xcode 5。
使用不同的配置构建:
在 xcode 插件中,您可以设置要使用的方案。
自动内部版本号增量
我向我的 jenkins 作业添加了一个名为 XCODEBUILDNUMBER 的参数。每当我开始构建时,我只需从 xcode 项目中复制构建号(我手动递增它。我的看起来像 080813A)并将其粘贴到 XCODEBUILD 参数中。我用它来命名我的输出文件等。jenkins 的插件可以自动增加你的构建号,但它们不集成或与 xcode 同步。
Jenkins 和 Apple CI 之间的内部版本号的处理/同步
正如我之前所说,我不知道同步内部版本号的方法,但我只是想到了一个可能的解决方案。您可以使用命令行工具普利斯特好友 http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man8/PlistBuddy.8.html,在 info.plist 中设置构建号,作为 jenkins 作业中的构建步骤。
单元测试
我还没有成功地使用 Xcode5 进行单元测试,但我知道 jenkins 的 xcode 插件支持它。我相信项目设置中缺少“构建后测试”键可能与此有关。如果你让它发挥作用,我很想知道。 (我也热衷于完成这项工作)
验收测试
据我所知,Frank 是一个命令行工具。您可以轻松地将其集成到您的 Jenkins 工作中,并且我相信如果您的测试未通过,它将导致构建失败。
从不同的 Jenkins 作业访问 Apple CI 的构建产品
不完全确定你的意思,但使用 jenkins,你可以存档你的构建产品(.ipa),以便稍后下载并上传到 testflight 等服务。再说一次,我对 Xcode Server (CI) 不太了解。
备份构建
正如我之前所说,jenkins 可以归档你的构建产品。另外,我在构建产品目录中使用 ${BUILD_NUMBER} 变量,因此每个构建都有不同的目录。该目录也备份到我的 Time Machine,并将重要的构建复制到我的 Web 目录。
自动构建 git 推送到特定分支
使用 jenkins git 插件,您可以让 jenkins 以您指定的时间间隔轮询您的 scm,并可以在更改时触发构建。
电子邮件通知
我确信有一个插件可以做到这一点。 (当构建失败/成功时会向您发送电子邮件。事实上,这可能是内置的)
结束语
xcode CI 是一个完全独立的 CI,可能很难与 jenkins 集成。就我个人而言,我推荐詹金斯只是因为它的可扩展性。抱歉,我对 Xcode Server 不太了解。