iOS框架构建:与第三方库链接的最佳实践是什么?

3
我正在为iOS构建一个框架,并且我的框架依赖于AFNetworking。那么,最佳实践是如何包含AFNetworking呢?阅读其他帖子(尤其是这个问题here),我得出了三个选项:
  1. 将AFNetworking的所有.h.m文件复制到我的项目中,并使用它编译我的框架。但是根据内容,可能会导致某些使用我的框架的第三方开发人员已经在使用AFNetworking,并且将收到编译时错误,指示某些类被声明两次。

  2. 使用CocoaPods并将AFNetworking链接到我的框架。这导致了此错误:-lPods不是对象文件(不允许在库中)

  3. 构建类似于Aeris SDK的东西,在这种情况下,使用我的框架的第三方开发人员将负责将AFNetworking添加到其项目中。

我认为选项3是最好的,但我不知道该怎么做。我应该如何开发我的框架以调用AFNetworking的类/方法,但不在最终框架产品中包含它呢?

谢谢!

2个回答

3

我赞同使用“CocoaPods”的方法! - Carsten

-1

好的,我决定选择选项3。

我刚刚将任何第三方库的所有头文件添加到了我的框架项目中(您也可以添加.m文件,但不要将它们包含在静态库目标中)。

我还对所有内容进行了文档化,这样使用我的框架的开发人员就会知道依赖关系以及如何在自己的项目中包含/安装它们(包括第三方库版本、CocoaPods支持等)。

我决定不选择选项1,因为这将导致某些情况下项目在最终应用程序中编译出两个相同库的副本。即使我在我的框架代码中更改库的命名空间(以防止“重复符号”错误),这仍然可能导致其他一些可能的问题,例如APP大小增加,与运行多个相同库实例相关的可能错误等。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接