【问题标题】:Build and project management tool for iOs build and dependencies用于 iOs 构建和依赖项的构建和项目管理工具
【发布时间】:2012-07-16 18:10:43
【问题描述】:

我有 Java、Apache Maven 和 Android 背景,并且正在涉足 iOS。现在我想知道是否有某种标准工具链可以帮助解决诸如

  • 管理 scm 详细信息(svn、git、mercurial、分支、标记..)
  • 发布管理(版本编号、管理开发与产品配置...)
  • 处理依赖项(例如,为多个项目和开发人员集中、远程访问)
  • IDE 独立构建
  • CI 构建
  • 测试库(单元测试、集成测试、UI 测试、模拟)
  • 静态分析
  • 项目运行状况报告
  • 其他 IDE

以及 Maven 生态系统提供的一大堆其他东西,比如公共图书馆存储库等等。从我最初的研究来看,周围似乎并不多,但我可能只是在寻找错误的地方。

iOS 开发必备的工具和库有哪些?

此外,我的印象是 Xcode 支配一切,如果没有某个功能,你最终会不走运(例如 git 或 hg 支持)并添加其他工具。很好,但你总是必须使用 Xcode 对吗?

【问题讨论】:

    标签: iphone objective-c ios maven-2 ios4


    【解决方案1】:

    几周前,我们开源了 XCode Maven 插件。在 SAP,我们使用它在 Hudson 上使用 Maven 以符合产品标准的方式集中构建我们所有的 iOS 应用程序和库。库和应用程序部署到 Nexus,依赖项(到库)由 Maven 自动解析。

    Maven 中心的一些概述文档和二进制文件仍然缺失,但源代码和技术文档已经在 Github 上可用。如果您有任何问题,请写信给我们的邮件列表。我们会尽力帮助您。

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

    亲切的问候,亚历克斯

    【讨论】:

    • 哇.. 太棒了。怎么就没有再上媒体了。例如。 maven 用户邮件列表上什么都没有。
    【解决方案2】:
    • 管理 SCM 详细信息:Xcode 对某些 SCM 的支持有限。周围有很好的第三方 SVN 接口:我用的是 Versions by Sofa。
    • 依赖关系:Xcode 在这方面做得很好。
    • 独立于 IDE 的构建:有一个名为 xcodebuild 的命令行工具可以构建 Xcode 项目。如果您想尝试在完全不使用 Xcode 的情况下编译和链接 iOS 应用程序项目,那么祝您好运,并使用您最喜欢的构建工具。您可以查看 gnustep-make 以了解如何使用 make 构建应用程序,然后将其移植到 iOS 项目中。请注意,即使您使用其他工具,您仍然需要安装 Xcode 才能构建,因为您需要 SDK。
    • CI 构建:我使用 CruiseControl.rb,有些人使用 Hudson。
    • 静态分析:Xcode。点击“构建和分析”。

    【讨论】:

    • xcode 如何在管理依赖方面做得很好?例如。不依赖绝对库位置(路径方式)或直接将库包含在项目中。这似乎不适用于例如许多项目的版本更改。
    • 所以对于 CI,你必须使用 SDK 和例如 hudson 运行 mac 服务器并使用 xcodebuild 对吗?
    • @Manfred:您可以使 Xcode 目标依赖于其他目标,并且可以提供指向不在其他目标中的事物的相对路径。请注意,由于目标可以只运行 shell 脚本,因此没有太多借口可以说明不是 Xcode 目标 :)。关于 CI,是的:鉴于您只能在 Mac OS X 上构建 iOS 应用程序,您的构建机器人需要在 Mac 上。
    【解决方案3】:

    您可以build unit tests 直接在 Xcode 中进入您的项目,它们将在构建过程中运行。对于熟悉 junit 的任何人来说,它看起来都非常简单和自然。在 2010 年 WWDC 上也有关于使用 Instruments 进行自动化测试的会议,这些会议可能会为您填补集成测试的角色。如果您想在 Apple 开发者网站上查找视频和资料,则为 session 306。我已经研究过了,但实际上并没有进行任何 UI 测试,所以我不能说它有多简单或完整。

    【讨论】:

    • 使用 Instruments 进行自动化测试也应该适合 UI 测试。
    猜你喜欢
    • 1970-01-01
    • 2012-06-30
    • 2013-06-17
    • 2011-06-26
    • 1970-01-01
    • 2017-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多