Xcode:如何在主项目和插件包之间共享代码(即框架)

时间:2014-07-31 13:57:16

标签: objective-c xcode macos cocoa

在我的项目中,我有两个目标,1)主要应用程序加载2)一组插件。我已经开始拥有需要在两个目标中都可用的对象,因此天真地尝试在每个目标中单独编译它们(产生关于具有不同实现的警告:类X在Y和Z中都实现。将使用其中一个哪一个未定义。)

为了解决这个问题,我决定创建一个框架,所以我添加了一个框架,但我不知道如何做到这一点a)主app和bundle都访问框架(通过编译框架,而不仅仅是通过项目中的标题),因此在运行项目时编译框架。

如果你知道怎么做,谢谢!

1 个答案:

答案 0 :(得分:0)

以下是我遵循的步骤:

  1. 在项目中创建一个新框架,复制所有共享代码。 在框架的主标题中,包括所有共享代码的标题。
  2. 构建框架以测试它的构建(例如,选择框架的方案并单击播放)
  3. 转到Application和Plugin Bundle的Build阶段,并将框架添加到'target dependencies'和'Link binary with libraries'
  4. 要在app和bundle中的代码中包含框架内容,只需使用主标题,然后使用<>而不是“”,例如,如果您的框架被称为Foo使用#import
  5. 在部署方面,可能需要对框架的安装位置进行一些调整,目前它与应用程序本身一起放在一起,而不是放在内部,但我可能会在以后解决这个问题:)