构建和项目管理工具,用于iOS构建和依赖项。

6
我有Java、Apache Maven和Android背景,并且正在涉猎iOS。现在我想知道是否有一种标准的工具链,可以帮助处理以下内容:
- 管理scm细节(svn、git、mercurial、分支、标记等) - 发布管理(版本编号、管理dev与prod配置等) - 处理依赖关系(例如:为多个项目和开发人员集中管理,远程访问) - IDE无关构建 - CI构建 - 测试库(单元测试、集成测试、UI测试、模拟) - 静态分析 - 项目健康报告 - 其他IDE
还有像Maven生态系统提供的公共库存储库等一大堆其他东西。从我的初步研究来看,似乎没有太多相关的东西,但我可能只是在错误的地方寻找。
iOS开发必备的工具和库是什么?
此外,我有这样的印象:Xcode是统治一切的,如果没有某个功能,你就会失去运气(例如:git或hg支持),需要添加其他工具。没问题,但你总是需要使用Xcode,对吗?
3个回答

7
我们几周前开源了XCode Maven插件。在SAP,我们使用它以Maven的方式在Hudson上集中构建所有iOS应用和库,并符合产品标准。库和应用程序都部署到Nexus,并且Maven会自动解决(库)依赖关系。 Maven中央仓库上仍缺少一些概述文档和二进制文件,但是源代码和技术文档已经在Github上提供。如果您有问题,请写信给我们的邮件列表。我们会尽力帮助您。

http://sap-production.github.com/xcode-maven-plugin
https://github.com/sap-production/xcode-maven-plugin

敬礼,Alex


哇,太棒了。为什么这个还没有在媒体上出现呢?例如,在Maven用户邮件列表中没有任何消息。 - Manfred Moser

5
  • 管理SCM细节:Xcode对某些SCMs的支持有限。有很不错的第三方SVN界面可供使用:我使用的是Sofa的Versions。
  • 依赖项:Xcode在这方面做得很好。
  • 独立于IDE构建:有一个名为xcodebuild的命令行工具可以构建Xcode项目。如果你想尝试编译和链接iOS应用程序项目,而完全不使用Xcode,则祝你好运,并使用make或您喜欢的构建工具。你可以查看gnustep-make以了解如何使用make构建应用程序,然后将其移植到iOS项目中。请注意,即使您使用其他工具,构建iOS应用程序时仍需要安装Xcode,因为您需要SDK。
  • CI构建:我使用CruiseControl.rb,有些人使用Hudson。
  • 静态分析:Xcode。点击“构建和分析”。

Xcode如何在管理依赖项方面做得很好?例如,不依赖于绝对库位置(路径方面)或仅直接将库包含在项目中。这似乎无法很好地扩展,例如跨多个项目进行版本更改。 - Manfred Moser
所以对于CI,您必须在带有SDK和例如Hudson的Mac服务器上运行,并使用xcodebuild,对吗? - Manfred Moser
@Manfred:您可以使Xcode目标依赖于其他目标,并且可以为不在其他目标中的内容提供相对路径。请注意,由于目标只能运行shell脚本,因此没有什么借口说某些东西不是Xcode目标:)。关于CI,是的:考虑到您只能在Mac OS X上构建iOS应用程序,因此您的构建机器人需要在Mac上。 - user23743

0
你可以在Xcode中将单元测试构建到项目中,并在构建过程中运行它们。对于熟悉JUnit的任何人来说,这似乎非常简单和自然。2010 WWDC有关使用Instruments进行自动化测试的会话,可能会填补集成测试的角色。如果您想在Apple开发者网站上查找视频和材料,可以查看306号会议。我已经研究过它,但实际上并没有做过任何UI测试,所以我无法说它有多容易或完整。

Instruments 的自动化测试也适合进行 UI 测试。 - user23743

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接