【问题标题】:How to work on a Cocoa app and plugins in parallel?如何并行处理 Cocoa 应用程序和插件?
【发布时间】:2010-01-05 02:48:26
【问题描述】:

我有一个相对简单的目标:我想创建一个本身没有太多功能但可以通过插件扩展的 Cocoa 应用程序。此外,我想开发一些插件来为用户提供真正的功能(和工作示例)。

由于我计划将应用程序和每个插件分开的开源项目(和 Git 存储库),我现在正在寻找组织我的文件和 Xcode 项目的最佳方式。我对 Xcode 不是很有经验,现在我没有看到一种简单的方法来让它在构建后不复制文件的情况下工作。

这是迄今为止我用于开发的简单单片设置: 只有一个 Xcode 项目包含多个产品:

  • 主要应用
  • 插件开发框架
  • 几个插件包

我正在寻找一种将这些项目拆分为多个 Xcode 项目(一个用于应用程序和框架)和一个用于每个插件的舒适方法。由于我的应用程序仍处于开发的早期阶段,我仍在更改应用程序和插件中的许多内容。所以我所说的 “舒适” 的意思是,我不想手动复制文件或类似的不便。

我需要的是插件项目知道他们可以在哪里找到当前的开发框架,并且应用程序需要知道它可以在哪里找到开发插件。最好的方法是项目间依赖,但我找不到在 Xcode 中设置类似的方法。

我想到的一个可能的解决方案是将“复制文件构建阶段”中的两个(插件和框架)复制到已知位置,例如/tmp/development,所以生产和开发文件不会混淆。

我认为我的解决方案就足够了,但我很好奇是否有更好的方法来实现我想要的。因此,欢迎提出任何建议。

【问题讨论】:

    标签: cocoa xcode git workflow


    【解决方案1】:

    首先,不要使用您提到的静态“已知位置”。我曾在此类项目中工作过;这是皇家的痛苦。一旦您需要几个不同的项目副本(用于并行修复错误,用于测试“干净”构建与您的最新更改,用于处理多个分支),构建开始破坏每个其他,您发现自己必须比您想要的更频繁地进行完全清洁/构建。

    您可以通过添加依赖项目(添加文件)来创建项目间依赖关系,右键单击目标并选择“获取信息”,然后在常规窗格中添加直接依赖关系。

    在结构方面,您可以将主应用程序和框架放在一起,也可以将它们放在单独的项目中。无论哪种情况,我都推荐这样的目录树:

    /MyProject
        /Framework
        /Application
        /Plugins
            /Plugin1
            /Plugin2
    

    然后项目应该通过相对路径相互引用。这意味着您可以轻松地并行处理项目的多个副本。

    您还可以查看更改到每个目录并运行“xcodebuild”的顶级构建脚本。我不喜欢复杂的构建脚本(我们有一个;它被称为 Xcode),但如果它所做的只是在需要时使用参数调用“xcodebuild”,那么一个简单的构建脚本很有用。

    【讨论】:

    • 这听起来很合理,所以我一定会试试这个。
    • 有效!尽管“框架搜索路径”必须更改为"\"${SRCROOT}\"/../Application/build/${CONFIGURATION}"。否则找不到头文件。总之,这不是一个真正直接的设计,但这是 Xcode 的一个限制。尽管如此,还是非常感谢!更多:devklog.net/2007/10/07/…
    猜你喜欢
    • 1970-01-01
    • 2014-01-09
    • 2012-04-30
    • 1970-01-01
    • 2011-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多