代码之家  ›  专栏  ›  技术社区  ›  Koraktor

如何并行处理Cocoa应用程序和插件?

  •  3
  • Koraktor  · 技术社区  · 15 年前

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

    当我计划使应用程序和每个插件独立于开源项目(和Git存储库)时,我现在正在寻找组织我的文件和Xcode项目的最佳方法。我对Xcode不是很有经验,现在我看不到一个简单的方法,可以让它在构建后不复制文件就工作。

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

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

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

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

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

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

    1 回复  |  直到 15 年前
        1
  •  4
  •   Rob Napier    15 年前

    首先,不要像您提到的那样使用静态的“已知位置”。我从事过这种项目,这是一种皇家的痛苦。一旦你开始需要项目的两个不同副本(用于并行修复bug,测试“干净”的构建与最新的更改,在多个分支上工作),这些构建就会开始互相破坏,你会发现自己必须比你想要的更频繁地进行完全的清理/构建。

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

    在结构方面,您可以将主应用程序和框架放在一起,也可以将它们放在单独的项目中。在这两种情况下,我建议使用如下目录树:

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

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

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