具有共享依赖关系的多个静态库 - iOS

jma*_*mac 3 xcode linker static-libraries ios

我正在研究几个iOS项目,这些项目将有很多共享代码,所以我在静态库中收集这些代码.

现在让我们说我有3个静态库我正在使用:

  1. Lib A包含通用实用程序功能
  2. Lib B包含一组类
  3. Lib C包含第二组类

(和A是B和C的依赖关系)

现在,我的最终项目需要利用所有三个库的功能.我知道A可以与B,C和我的最终项目静态链接,但是在那时我会得到一个链接器错误,因为有多个相同类的实现.

应如何处理这种情况?

jma*_*mac 6

对于其他任何想知道这一点的人,我发现你可以通过在每个库中包含头文件来获得我想要的行为,但只能链接一个.

在我在我的问题中概述的示例中,我的主项目将链接到A,B和C.但是,要在库B和C中使用A,您可以在B&C中包含A的头文件,但是只能链接到A在根项目中.

如果有人有更好的建议,请随时分享.

另外,还有一个名为Cocoapods的项目,它是iOS依赖项管理器.这似乎值得关注.