我正在开发几个 iOS 项目,这些项目将有很多共享代码,所以我在静态库中收集这些代码。
现在假设我正在使用 3 个静态库:
- Lib A 包含通用实用程序函数
- Lib B 包含一组类
- Lib C 包含第二组类
(并且 A 是 B 和 C 的依赖项)
现在,我的最终项目需要利用所有三个库的功能。我知道 A 可以与 B、C 和我的最终项目静态链接,但那时我会收到链接器错误,因为相同类有多个实现。
这样的情况应该如何处理?
我正在开发几个 iOS 项目,这些项目将有很多共享代码,所以我在静态库中收集这些代码。
现在假设我正在使用 3 个静态库:
(并且 A 是 B 和 C 的依赖项)
现在,我的最终项目需要利用所有三个库的功能。我知道 A 可以与 B、C 和我的最终项目静态链接,但那时我会收到链接器错误,因为相同类有多个实现。
这样的情况应该如何处理?
对于其他对此感到疑惑的人,我发现您可以通过在每个库中包含头文件来获得我想要的行为,但只能与一个库链接。
在我在问题中概述的示例中,我的主要项目将链接到 A、B 和 C。但是,要在库 B 和 C 中使用 A,您可以在 B 和 C 中包含 A 的头文件,但只能链接到A 在根项目中。
如果有人有更好的建议,请随时分享。
顺便说一句,有一个名为Cocoapods的项目,它是一个 iOS 依赖管理器。似乎值得关注。