制作iOS框架:包括第三方库和代码

jac*_*ash 13 linker frameworks objective-c ios

我正在制作一个静态iOS框架.我想AFNetworking在我的框架中使用第三方代码作为示例.AFNetworking很受欢迎.我现在可以感知命名空间冲突.这里的最佳做法是什么?据我了解,我有3个选择:

1)构建AFNetworking我的框架,导出标头.这允许客户端使用AFNetworking我的库中的版本,但是他们不能使用也链接的其他框架AFNetworking.如果他们以AFNetworking为基础,他们依靠我来更新AFNetworking.

2)针对AFNetworking标题的代码,但使第三方包括AFNetworking在他们的项目中.这为框架消费者增加了额外的步骤,他们必须添加AFNetworking源代码.将来可能存在版本不兼容,但至少如果另一个框架使用AFNetworking它们可以同时使用它.

3)重命名AFNetworking并将标题保密.这样我就可以以任何方式避免命名空间冲突,除非它变得非常难以更新我的副本AFNetworking.最终的二进制文件变得更大,但所有互操作性问题都得到了解决.这对我来说还有很多工作要做.

我还有其他选择吗?什么是最佳做法?

mam*_*mcx 6

更好的选择是使用http://cocoapods.org.这样,就可以声明libs的依赖关系并获得整个项目的单个下载.

不要重命名标题.耗费时间,而且很难.

PD:这个样本:

http://chariotsolutions.com/blog/post/using-cocoapods-to-manage-private-libraries/

  • 这确实有要求主机应用程序使用Cocoapods的缺点. (3认同)