xcode Mac 开发人员使用什么自动构建系统?
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/1176387/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
What automated build system do Mac developers use?
提问by
my team is currently using buildbotto automate overnight and continuous-integration builds and regression tests. For builds and unit tests, the builder just invokes a script which syncs the sources from p4 and then runs xcodebuild
. The regression tests are also launched by a shell script, and are themselves combinations of shell scripts and AppleScripts. The builds are all performed on one system but then buildbot triggers tests to happen on multiple Macs, with different architecture and OS combinations. The things I like about buildbot are the automatic triggers (so the tests run only if and when the build succeeds), and the reporting including the waterfall view to see the overall status.
我的团队目前正在使用buildbot自动化隔夜和持续集成构建和回归测试。对于构建和单元测试,构建器只调用一个脚本来同步来自 p4 的源,然后运行xcodebuild
. 回归测试也是由 shell 脚本启动的,它们本身就是 shell 脚本和 AppleScript 的组合。构建全部在一个系统上执行,但随后 buildbot 触发测试在多台 Mac 上进行,具有不同的体系结构和操作系统组合。我喜欢 buildbot 的地方是自动触发器(因此测试仅在构建成功时运行),以及包括瀑布视图在内的报告以查看整体状态。
However, I see a number of problems too. The "master" process which coordinates the builds is either leaky or just has a huge working set which means that it consumes a couple of gigabytes of memory. Occasionally network problems mean that a slave will be lost; rather than retrying later it will just fail the build. In fact if the slave is supposed to be triggered for a dependent build, it will fail the first build after it has otherwise successfully completed.
但是,我也看到了许多问题。协调构建的“主”进程要么有漏洞,要么只是有一个巨大的工作集,这意味着它消耗了几 GB 的内存。偶尔的网络问题意味着一个slave会丢失;而不是稍后重试它只会使构建失败。事实上,如果应该为从属构建触发从属,那么在成功完成后,它会在第一次构建失败。
So what are the rest of you using to automate your Xcode builds and unit tests? How do those solutions work for you? Anything you would recommend?
那么你们其他人使用什么来自动化 Xcode 构建和单元测试?这些解决方案如何为您服务?有什么你会推荐的吗?
采纳答案by redsquare
回答by Xetius
Our team use Hudson with a script which converts the Unit Test output from XCode to NUnit format.
我们的团队将 Hudson 与脚本一起使用,该脚本将单元测试输出从 XCode 转换为 NUnit 格式。
回答by JAgostoni
I know this is an older question, but for those using TFS to hold their Xcode projects, I created a custom build activity to make automating Xcode builds via TFS easier. The code is hosted on Codeplex here: http://tfsxcodebuild.codeplex.com/.
我知道这是一个较老的问题,但对于那些使用 TFS 来保存他们的 Xcode 项目的人,我创建了一个自定义构建活动,以便通过 TFS 自动构建 Xcode 更容易。代码托管在 Codeplex 上:http: //tfsxcodebuild.codeplex.com/。
Hope someone finds it useful!
希望有人觉得它有用!
回答by Douglas Leeder
We worked out what was using all the memory - log files - older buildbot keeps all logs forever and keeps them in memory (possibly until a restart).
我们找出了使用所有内存的内容 - 日志文件 - 较旧的 buildbot 永远保留所有日志并将它们保存在内存中(可能直到重新启动)。
Newer buildbot can be configured to keep a fixed amount of history.
较新的 buildbot 可以配置为保留固定数量的历史记录。
Buildbot build log files should be limited in size to avoid the problem.
Buildbot 构建日志文件的大小应受到限制,以避免出现此问题。
回答by Jeffrey Fredrick
I use the XcodeBuilderthat's part of CruiseControl. Of course it helps that I wrote it. :)
我使用XcodeBuilder,它是CruiseControl的一部分。当然,我写它是有帮助的。:)
But I did use it on a real multiple person project for an iPhone app (Surf) that's for sale in the app store.
但我确实在一个真正的多人项目中使用了它,用于在应用程序商店出售的 iPhone 应用程序 ( Surf)。
回答by Jeffrey Fredrick
Now that it's three years later I have my own answer to provide to this question. I'm using Jenkins, mainly for the plug-ins that it provides. It has a plug-in for building targets in Xcode projects (or schemes in workspaces). There's a plug-in to run the Clang static analyzer. It interfaces with my bug-tracker system, it'll automatically push builds to Testflight too.
现在已经三年了,我对这个问题有了自己的答案。我正在使用Jenkins,主要用于它提供的插件。它有一个插件,用于在 Xcode 项目(或工作区中的方案)中构建目标。有一个插件可以运行Clang 静态分析器。它与我的错误跟踪器系统接口,它也会自动将构建推送到 Testflight。