依赖于其他Pod的分布式框架

在本教程中,我们的重点是使用依赖于其他容器的框​​架。 打开终端,并使用以下命令克隆启动程序项目。

git clone --branch 1.0.3 https://github.com/aliakhtar49/MyFramework.git

这是我们在上一部分中开发的框架。 如果您遵循 上一部分 ,则可以直接转到“入门”部分。 框架的职责是使用NSUrlSession打入网络调用,并将数据返回给使用者应用程序。 在上一部分中,我们看到了如何在本地和远程使用框架,而在这一部分中,我们将对框架添加一个依赖关系,而不是使用NSUrlSession,它将使用pod中附带的alamofire。

如果您不了解或不了解Podfile,Podspec和如何创建框架,强烈建议您看一下前面的部分。 😐

如图1所示,磁盘上的克隆存储库项目结构。

如果尚未创建框架存储库,则必须执行以下操作( 或参阅上一部分)

  1. 在github上创建MyFramework存储库
  2. 将项目克隆到一些空文件夹
  3. clone 1.0.3 MyFramework项目内容移动到空克隆存储库文件夹中
  4. 推送代码

您可以下载消费者应用程序(Consumer_Part2_Starter)。 该应用程序将使用我们创建的框架

入门

在本节中,我们将向我们的框架添加一个依赖项。 转到终端中MyFramework项目的根文件夹,如图2所示,然后运行以下命令。 这将创建一个podfile ,如图2所示。

Podfile定义项目所依赖的内容。

pod init

打开podfile并将其替换为图3中所示的代码。我们所做的是添加Alamofire作为对框架的依赖。

转到终端中MyFramework项目的根文件夹,如图2所示,然后运行以下命令。 这将安装Alamofire,并创建一个MyFramework.xcworkspace文件。 现在关闭项目并打开MyFramework.xcworkspace

pod install

如图4所示,我们在框架中添加了新功能。 现在,与以前的版本相比,它还有另一种方法。 此方法使用Alamofire从服务器获取数据,并且Alamofire包含在Pod中,该Pod是对此框架的依赖。

转到MyFramework项目的根文件夹,打开MyFramework.podspec文件,并用以下代码替换代码,如图5所示。我们做了几件事

  1. Cocoapods使用此git url下载源代码并寻找标签1.0.6
  2. 当消费者使用cocoapods安装我们的框架时,cocoapods首先查看依赖关系,然后按照步骤1进行自动安装。消费者应用程序无需担心它

Pod规范描述了Pod库的版本。 它包括有关应从何处获取源,使用哪些文件,要应用的构建设置以及其他常规元数据(例如其名称,版本和说明)的详细信息。

将更改推送到您创建的存储库。 我推动了回购

推送标签以创建历史记录点。 这一步很重要。 由于我们将使用此标记在客户应用程序上安装pod,如图7所示

您可以下载消费者应用程序(Consumer_Part2_Starter)。 该应用程序将使用我们创建的框架。 开放的消费者应用程序

转到Consumer应用程序项目的根文件夹,然后打开podfile。 如您所见,我们将标签版本更新为1.0.6 ,如图7所示,我们按下了此标签。

转到Consumer应用程序项目的根文件夹。 首先删除podfile.lock并在Consumer应用程序项目的根文件夹上的终端上运行以下命令

pod install

如图9所示,Cocoapods将执行许多任务

  1. 从消费者应用程序项目中读取podfile并将MyFramework标识为依赖项
  2. 转到https://github.com/aliakhtar49/MyFramework.git(1.0.6标记)并阅读podspec文件
  3. 在podspec上,将Alamofire标识为MyFramework项目的依赖项
  4. 下载所有依赖项
  5. 集成到客户端

如图10所示。现在,消费者应用程序使用我们的框架,该框架依赖于其他pod。

下一个

在下一部分中,我们将看到如何为组织使用创建私有pod