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.最终的二进制文件变得更大,但所有互操作性问题都得到了解决.这对我来说还有很多工作要做.
我还有其他选择吗?什么是最佳做法?
更好的选择是使用http://cocoapods.org.这样,就可以声明libs的依赖关系并获得整个项目的单个下载.
不要重命名标题.耗费时间,而且很难.
PD:这个样本:
http://chariotsolutions.com/blog/post/using-cocoapods-to-manage-private-libraries/
| 归档时间: |
|
| 查看次数: |
3442 次 |
| 最近记录: |