我制作一个静态的iOS框架.我想使用第三方代码,让我们以框架中的AFNetworking为例. AFNetworking很受欢迎.我现在可以感觉命名空间的碰撞.这里最好的做法是什么?据我所知,我有3个选择:
1)将AFNetworking构建到我的框架中,导出标题.这样客户端就可以在我的库中使用AFNetworking版本,但是它们不能使用其他链接AFNetworking的框架.他们依靠我的AFNetworking的更新,如果它们建立在它.
2)针对AFNetworking标题的代码,但使第三方在其项目中包含AFNetworking.这为框架消费者增加了一个额外的步骤,他们必须添加AFNetworking源.未来可能存在版本不兼容,但至少如果另一个框架使用AFNetworking,他们可以同时使用它们.
3)重命名空间AFNetworking并保持标题为私有.这样我就可以以任何方式避免命名空间冲突,只不过它真的很难更新我的AFNetworking副本.最终的二进制文件有点大,但所有的互操作性问题都得到解决.这对我来说是更多的工作.
我有其他选择吗?最好的做法是什么?
解决方法
一个更好的选择是使用
http://cocoapods.org.这样,可以声明libs的依赖关系,并为整个项目获得一个单一的下载.
不要重命名标题是耗时且艰辛的.
P.D:一个样本:
http://chariotsolutions.com/blog/post/using-cocoapods-to-manage-private-libraries/
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。