如何创建依赖XCode中的私有静态库的公共静态库?

时间:2011-12-27 00:09:31

标签: iphone ios xcode xcode4 static-libraries

我的公司希望为iOS开发提供两种不同的SDK以及使用每种SDK的示例应用程序。两个SDK都使用了许多常用代码,这些代码不属于SDK的公共接口。

我想构建项目,以便在一个静态库框架(我们保持私有)中使用我们的公共代码,并让每个SDK都是自己的静态库框架(我们发布)。 SDK框架各自依赖于通用框架。

我已经完成了这个设置和工作,除了一件事......公共库中有一些父类在SDK代码中使用。为了在SDK代码中发布子类,我需要导出父类的标头(仅在私有的通用框架中)以及SDK框架。


有关如何解决此问题的任何建议?以下是最重要的优先事项:

  • 客户可以下载单个框架并让它正常工作
  • 我们不会跨多个项目重复代码

3 个答案:

答案 0 :(得分:0)

拥有一个比其祖先更高能见度的课程是一个棘手的问题。事实上,一些非常流行的语言和运行时禁止它(就像使用.NET Framework的语言一样)。

没有明显的解决方案。在我看来,最简单的方法是只为字段发布私有类的标题。这些方法可以省略。这就是在Apple框架中隐藏“私有”方法的方式(这基本上会使该类“公开”,但所有方法都将被隐藏)。

另一个解决方案是使用合成而不是继承来获取功能。使您的公共类继承自NSObject,并为其提供私有类的实例(使用id字段隐藏其类型。)

答案 1 :(得分:0)

您只需将这些公共头文件作为Xcode中的引用添加到两个框架中。 Xcode项目文件可以引用该项目文件夹外部的文件。然后,您可以选择使用“复制页眉文件”构建阶段发布它们。

答案 2 :(得分:0)

请看我的博文。

点击here

这是创建静态库的完整参考。