我正在制作一个静态 iOS 框架。我想使用第 3 方代码,让我们在我的框架中使用 AFNetworking
作为示例。 AFNetworking
很流行。我现在可以感觉到 namespace 冲突。这里的最佳做法是什么?据我所知,我有 3 个选择:
1) 将 AFNetworking
构建到我的框架中,导出 header 。这让客户可以使用我的库中的 AFNetworking
版本,但他们不能使用也链接 AFNetworking
的其他框架。如果他们在 AFNetworking 上构建,他们依靠我更新 AFNetworking。
2) 针对AFNetworking
header 的代码,但让第三方在他们的项目中包含AFNetworking
。这为框架消费者增加了一个额外的步骤,他们必须添加 AFNetworking
源。将来可能会有版本不兼容,但至少如果另一个框架使用 AFNetworking
,他们可以同时使用它。
3) 重命名空间 AFNetworking
并保持 header 私有(private)。通过这种方式,我以任何方式避免了 namespace 冲突,除非更新我的 AFNetworking
副本变得非常困难。最终的二进制文件变大了一点,但所有互操作性问题都得到了解决。这对我来说还有很多工作。
我还有其他选择吗?最佳做法是什么?
最佳答案
更好的选择是使用 http://cocoapods.org .通过这种方式,可以声明库的依赖关系并获得整个项目的单一下载。
不要重命名标题。既费时又困难。
P.D:这个例子:
http://chariotsolutions.com/blog/post/using-cocoapods-to-manage-private-libraries/
关于ios - 制作一个 iOS 框架 : including 3rd party libraries and code,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15117187/