ios - 制作一个 iOS 框架 : including 3rd party libraries and code

标签 ios objective-c frameworks linker

我正在制作一个静态 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/

相关文章:

Java缓存框架

ios - 单击 tableView 中的文本字段时,ScrollView 没有向上移动

android - 如何处理移动应用程序中过时的 api

ios - Swift - 搜索总是在全文之前执行

ios - 在 iOS 7 - 7.1.x 上截图

ios - dispatch_get_specific() 和 dispatch_queue_set_specific() 线程安全吗?

objective-c - 在访问Objective C属性时可以具有参数吗?

ios - 使用唯一键的 NSKeyed 归档器警告

swift - 只有特定的包标识符找不到框架错误

mysql - 违反完整性约束 : 1452 Cannot add or update a child row: a foreign key constraint fails