依赖于其他Pod的分布式框架
在本教程中,我们的重点是使用依赖于其他容器的框架。 打开终端,并使用以下命令克隆启动程序项目。
git clone --branch 1.0.3 https://github.com/aliakhtar49/MyFramework.git
这是我们在上一部分中开发的框架。 如果您遵循 上一部分 ,则可以直接转到“入门”部分。 框架的职责是使用NSUrlSession
打入网络调用,并将数据返回给使用者应用程序。 在上一部分中,我们看到了如何在本地和远程使用框架,而在这一部分中,我们将对框架添加一个依赖关系,而不是使用NSUrlSession,它将使用pod中附带的alamofire。
如果您不了解或不了解Podfile,Podspec和如何创建框架,强烈建议您看一下前面的部分。 😐
如图1所示,磁盘上的克隆存储库项目结构。
如果尚未创建框架存储库,则必须执行以下操作( 或参阅上一部分)
- 在github上创建MyFramework存储库
- 将项目克隆到一些空文件夹
- 将
clone 1.0.3
MyFramework
项目内容移动到空克隆存储库文件夹中 - 推送代码
您可以下载消费者应用程序(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所示。我们做了几件事
- Cocoapods使用此git url下载源代码并寻找标签1.0.6
- 当消费者使用cocoapods安装我们的框架时,cocoapods首先查看依赖关系,然后按照步骤1进行自动安装。消费者应用程序无需担心它
Pod规范描述了Pod库的版本。 它包括有关应从何处获取源,使用哪些文件,要应用的构建设置以及其他常规元数据(例如其名称,版本和说明)的详细信息。
将更改推送到您创建的存储库。 我推动了回购
推送标签以创建历史记录点。 这一步很重要。 由于我们将使用此标记在客户应用程序上安装pod,如图7所示
您可以下载消费者应用程序(Consumer_Part2_Starter)。 该应用程序将使用我们创建的框架。 开放的消费者应用程序
转到Consumer应用程序项目的根文件夹,然后打开podfile。 如您所见,我们将标签版本更新为1.0.6
,如图7所示,我们按下了此标签。
转到Consumer应用程序项目的根文件夹。 首先删除podfile.lock
并在Consumer应用程序项目的根文件夹上的终端上运行以下命令
pod install
如图9所示,Cocoapods将执行许多任务
- 从消费者应用程序项目中读取
podfile
并将MyFramework
标识为依赖项 - 转到https://github.com/aliakhtar49/MyFramework.git(1.0.6标记)并阅读
podspec
文件 - 在podspec上,将Alamofire标识为
MyFramework
项目的依赖项 - 下载所有依赖项
- 集成到客户端
如图10所示。现在,消费者应用程序使用我们的框架,该框架依赖于其他pod。
下一个
在下一部分中,我们将看到如何为组织使用创建私有pod