ios - 独立框架

标签 ios cocoapods afnetworking-2 realm

我正在开发一个项目,在该项目中我创建了一个具有两个依赖项的 SDK (cocoapods) - AFNetworking 和 Realm。 这是我的过程:

  1. 我创建了 cocoapods 项目(在这个项目中代码是可见的)
  2. 我使用 cocoapods-package构建一个框架(带有损坏的符号)。
  3. 然后我将这个框架复制到另一个将分发给公众的 cocoapods 项目。

想要使用此 SDK 的用户然后“安装”此 cocoapod。当他这样做时,AFNetworking 和 Realm 会一起安装(因为它们是依赖项)

我想做的是以某种方式将 AFNetworking 和 Realm 嵌入到一个框架中。我知道框架的规模会更大。这样做的主要原因是用户没有义务使用相同版本的 AFNetworking 和 Realm。

最佳答案

CocoaPods Packager在这里自动处理你想要的东西。

  1. You can pull in third-party dependencies using CocoaPods. (CocoaPods Packager is even capable of mangling symbols to improve compatibility with any symbols that might appear in the integrating app.)

打包器为您构建开源 podspec。这个 podspec 需要声明所有的源、资源和依赖项。请注意,当不是所有的依赖项都被正确声明时,podspecs 永远不会 lint 或构建。

但是由于打包器通过破坏符号来处理依赖项,它允许您创建一个大的二进制文件,其中包含来自静态库的依赖项。

在该构建产品的基础上,您可以拥有 podspec 的修改版本。当它们被包含时,这不应该再声明依赖关系,并且不需要声明源文件或需要让它们在任何地方公开可用,而是将构建的二进制文件声明为 vendored 库。这仍然需要指定头文件并让它们可访问,以便 podspec 的消费者能够与您的库的 API 接口(interface)。
CocoaPods Packager 也为您创建了 podspec 的这个变体。

关于ios - 独立框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34084475/

相关文章:

xcodebuild 不适用于 pod 和多个目标

ios - NSURLSession,上传任务 - 获取传输的实际字节数

ios - 使用 AFNetworking 2.0 分组或批量请求

ios - Alamofire:具有额外属性的可编码对象

objective-c - Cocoa 单例和协议(protocol)

android - iOS 和 Android 使用哪个数据库

google-analytics - 如何通过cocoapods使用iOS的Google Analytics(分析)

iphone - 是否可以在关闭蜂窝数据和 Wi-Fi 时获取用户位置?

bash - Cocoa pods 终端 utf-8 编码

html - 如何使用 AFNetworking 获取重定向的 URL?