使用Cocoapods创建和分发私人图书馆

大家好,

在这篇文章中,我将向您展示如何使用Cocoapods开发和分发内部私有代码库。 顺便说一下,Cocoapods是管理项目中第三方依赖项的绝佳工具。 它不仅提供了一种轻松集成这些依赖项的方法,而且还允许您创建自己的依赖项并进行管理。 最重要的是,您可以简化组织内部的代码共享。 这被称为私人吊舱,并在可可足类网站上进行了详细描述。

在本博客中,我将向您展示一种创建私有pod的更简单方法,对于初学者来说也更容易理解。

创建私有容器时,您应牢记的最重要的一点是,它需要创建两个存储库。 一个存储库用于存储您要共享的代码或类(我们称为“ Pod”),另一个存储库是“ Podspec”存储库,其中包含有关该Pod的所有信息。 需要为您创建的所有Pod创建一次Podspec存储库,但Pod存储库是您要重用并与团队共享的每个代码分支的单独存储库。

话虽如此,我们需要执行的第一步是创建这些存储库。 让我们跳到它。

第1步:在Github上创建Podspec存储库

首先,您需要创建私有的“ Podspec”存储库。 为此,您需要首先在Github中创建一个存储库。 为此:

  • 前往Github
  • 创建新的仓库
  • 选择专用选项并命名您的规范存储库。 在这种情况下,我们在Github中创建了一个名为folio3-specs的存储库。)
  • 现在运行以下命令

回声“#folio3-specs” >> README.md
git初始化
git添加README.md
git commit -m“首次提交”
git remote add origin https://github.com/shahabejaz/folio3-specs.git
git push -u原始主机

上面创建的存储库除了Readme.md文件外,不保存任何其他内容 。 我们稍后将在创建第一个吊舱时解决此问题。

步骤2:将您的私有存储库添加到CocoaPods安装中

在Github中创建规范存储库后,只需在终端中运行以下命令即可将私有存储库添加到cocoapods安装中。

吊舱回购添加[REPO_NAME] [SOURCE_URL]

在上面的代码中, REPO_NAME是您将用来引用“ PodSpec”存储库的名称,SOURCE_URL是您刚刚创建的存储库的Github URL。 在这种情况下,我们的存储库名称是folio3-specs,源URL是该存储库的Github URL。

如果一切正常,那么您应该可以通过运行以下命令来链接您的规范存储库。

cd〜/ .cocoapods / repos / REPO_NAME
豆荚皮棉

现在我们的podspec存储库已经准备就绪,我们可以继续创建第二个私有存储库,这就是我们的Pod存储库。 该存储库将保存您要在组织内共享的代码。

第3步:在Github上创建您的Pod存储库

首先,我们需要创建一个空的Github存储库,如上面的步骤1中所指定,只是现在,我们将其命名为我们要共享的Pod。 因此,我们将存储库命名为FLCommonLibrary 。 这基本上是一个存储库,其中包含一堆在组织中不同项目中使用的实用程序和类别。

步骤4:产生Pod专案

CocoaPods提供了一个不错的实用程序,可帮助您设置Pod项目以及测试应用程序和测试框架。 因此,要生成您的Pod项目,只需在空的github repo目录中运行以下命令即可。

pod lib create [POD_NAME]

其中[POD_NAME]是您正在创建的Pod的名称,并想与您组织中的其他开发人员共享。

运行上面指定的命令后,将通过交互式脚本提示您为新的Pod项目选择各种选项。 选择这些选项(如下所示)后,cocoapod将在我们刚刚创建的示例项目上运行“ pod install”。

最终结果将是为您设置的XCode工作区,以开始Pod开发。 如果您已经有一些源文件要添加到项目中,则可以将它们复制到为您创建的Pod / Classes文件夹中。 您还会发现已经为您创建了一个默认的测试应用程序,您可以在其中编写单元测试并查看Pod的测试。

完成此命令后, .workspace项目将自动打开。 如果不是,请在示例项目中打开.workspace文件。 您将在pod目标中看到一个ReplaceMe.m文件,如下所示。

这是您要与您的Pod共享文件[.h,.m]的放置位置。 您还将看到Podspec Metadata文件夹。 接下来,我们需要编辑podspec文件。

步骤5:编辑Podspec文件

打开新生成的podspec文件。 值得庆幸的是,Cocoapod为我们生成了一个完善的pod规范模板。

Podspec文件或Spec描述了Pod库的版本。 它包括有关源文件的位置,要使用的文件,要应用的构建设置,依赖项,所使用的框架以及其他常规元数据(例如Pod的名称,版本和说明)的详细信息。

以下是由cocoapod为我们的私人吊舱生成的Podspec的示例:

现在,再次打开终端并转到.podspec文件所在的文件夹,然后运行以下命令,而无需更改.podspec文件中的任何内容。

pod lib lint FLCommonLibrary.podspec

执行此操作时,您可能会看到以下输出。

如果您这样做,则意味着我们的podspec文件有问题。 因此,我们需要解决这些问题。 为此,我们需要执行以下操作。

  • 指定我们的广告连播的适当摘要
  • 添加一些描述
  • 用我们的Github用户名替换

进行这些更改之后,再次运行pod lib lint FLCommonLibrary.podspec。

提示您还应该在s.source字段中指定Github用户名,否则稍后在将此podspec推送到规范存储库时会产生错误。

这次您将看到命令成功,如下面的屏幕快照所示。

现在,我们很高兴使用podspec文件,并且我们的pod已准备好向其中添加一些可共享的文件。 因此,我们将完全这样做。

第6步:在您的Pod中添加代码

由于我们已经创建了一些可重用的实用工具类和扩展,希望与我们的团队共享,因此我们将这些文件拖放到文件夹中(如下图所示)。

现在,我们要在创建的示例项目中测试这些文件。 为此,我们将在示例项目上运行pod install命令。 这会将这些文件安装在示例项目的Pod文件中。 您可以使用以下命令将这些文件包含在示例项目中。

在示例项目中进行测试之后,您就可以推送pod项目并与组织中的其他开发人员共享。

注意删除ReplaceMe.m文件,它不再有用。

步骤7:将您的Pod推入Specs Repo

现在,您已经构建并测试了Pod,是时候将其部署到您的私有Podspec存储库中了。 为此,您需要做的第一件事就是标记Pod的Git存储库。

步骤7a:标记

首先,我们将.podspec文件中的pod版本更新为1.0.1,并在Github上提交更改。 您可以将其更改为适合您的任何版本,但请确保它与您的Git标签版本相同。

现在,我们将通过从终端在仓库中运行以下命令来标记Github上的代码。

git标签’1.0.1′
git push –标签

步骤7b:推送至Spec Repo

将标签推送到Pod存储库后,您需要将此Pod推送到您在第一步中创建的私有Spec存储库中。 为此,请运行以下命令将库发送给您的私有Podspec存储库。

吊舱回购推送[REPO_NAME] [POD_NAME] .podspec

在这种情况下,folio3-specs是repo_name,FLCommonLibrary是我们的pod的pod_name。 因此,您应该在上面的代码片段中指定(替换)这些名称。

提示在运行此命令之前,应运行pod spec lint FLCommonLibrary.podspec来验证您的规范正确。

现在,您可以看到此规范仓库中已引用了此容器仓库(如下所示)。

步骤8:与您的团队分享

如果您希望开发团队的其他成员能够使用此Pod,则他们应该有权访问规范仓库,并且他们必须使用以下命令将私有仓库添加到其本地Cocoapods安装中:

吊舱回购添加[REPO_NAME] [SOURCE_URL]

他们还需要在pod文件的顶部指定规范仓库的源URL,以便cocoapods知道在哪里可以找到您的pod的安装(如下所示)。

恭喜你! 您刚刚与团队发布了您的第一个私人Pod。 现在,您可以利用cocoapods的功能在内部iOS项目中利用可重用代码的好处。

提示 :您可以通过在Twitter上关注它们来获取cocoapods的最新更新:https://twitter.com/cocoapods

快乐的编码并继续分享🙂