我目前正在开发一些类似的 Cocoa 桌面应用程序。为了在它们之间共享代码,我确定了一组可以在所有这些应用程序中通用的核心类和函数。我想将这个通用代码捆绑到一个框架中,我当前的所有应用程序(以及任何 future 的应用程序)都可以链接到该框架。
现在,困难的部分是:我将边开发这个框架边做,所以我需要我的每个桌面应用程序都引用它,但我希望能够编辑框架源代码从每个应用程序项目中,并根据需要自动重建框架。
例如,假设我打开了 DesktopAppNumberOne 的 Xcode 项目,并且我决定需要更改我的框架类之一。我愿意:
- 打开并编辑该框架类的源文件,而无需在 Xcode 中打开框架项目。
- 在 DesktopAppNumberOne 上点击“构建”,首先查看重新构建的框架(因为其源之一已更改),然后查看重新构建的 DesktopAppNumberOne 的部分内容(因为它链接的框架之一已更改)。
我可以了解如何仅使用一个应用程序和一个框架来执行此操作,但我无法弄清楚如何使用共享一个框架的多个应用程序来执行此操作。
有人通过这种方法取得成功吗?我是否可能以错误的方式处理这个问题?任何帮助将不胜感激。
最佳答案
为您的框架创建一个 XCode 项目。
在“组和文件”面板中 > 看到左上角的蓝色项目图标了吗?将其拖放到您喜欢的任何其他项目的“组和文件”面板中。
因此,创建一个应用程序项目,然后从框架项目中拖入项目图标。
您的应用目标上的 CMD-i。在这里您可以设置对框架的依赖关系并链接到它。
几点
将多个应用程序链接到一个框架可能会带来压力。您需要将框架安装到/Library/Frameworks 或同等版本中,或者捆绑到每个应用程序中。
出于开发目的,我发现为每个项目设置一个自定义的通用构建目录可以简化事情。我将每个项目设置为构建到 /Code/Build/Debug 中。这意味着调试构建的框架搜索路径可以是 $CONFIGURATION_BUILD_DIR。对于您的发布版本,您仍然需要在安装路径、rpaths 等方面做一些工作。痛苦!
XConfig 文件是您的 friend 。开源 google mac 工具箱是如何使用它们的一个很好的例子。您可能至少需要 Project_debug.xconfig、Project_release.xconfig、Target_framework.xconfig、Target_application.xconfig .
关于Cocoa框架开发: sharing between projects,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2815724/