开发自定义Pod并将其发布到Cocoapods库

本文将引导您完成创建自定义pod的过程,该pod将扩展方法添加到UIImage视图并将其发布到Cocoapods库。

让我们从创建一个简单的GitHub存储库和一个本地pod库项目开始,然后继续填写pod规范和实际代码。

在继续前进之前,您应该了解什么

  • CocoaPods基础
  • Github基础
  • 熟悉Xcode 9
  • 适应Swift-4

让我们开始吧

我希望所有人都将CocoaPods用作iOS项目的依赖项管理器,但是如果您没有设置所有内容,请按照以下步骤操作。

  • 继续并启动终端应用程序,并输入cd并按Enter键,以确保您位于路径目录中
  • 通过运行gem install安装CocoaPods。 安装完成后,请检查Pod版本
 须藤宝石安装cocoapods 
sudo pod --version

现在,我们已经在机器上安装了Cocoapods,让我们转到GitHub并创建我们的Pod回购。 如果您尚未设置帐户,请填写注册信息并执行快速注册过程。 现在,如果您已经拥有Github帐户,请继续登录。

现在,我们选择右上角的加号图标,然后单击新的存储库。

您计划发布的所有cocoapod必须具有唯一的名称。 我将我的存储库命名为SKImageExtension,然后点击创建存储库并完成此操作。

我们需要在桌面上创建实际的Pod库项目,这对我们来说是幸运的,CocoaPods具有实用程序命令来帮助我们生成完整的模板。 让我们再次打开终端,我希望将项目保存在桌面上,因此我将目录更改为桌面。 现在,让我们运行create命令:

  pod lib创建SKImageExtension 

pod lib create将通过项目文件夹的名称生成项目。 现在,这应该与GitHub存储库匹配,因此在我的情况下,它将为SKImageExtension

现在,这将开始提示我们需要填写以下详细信息平台,开发语言,示例应用程序,测试框架,基于视图的测试选择以下所示的选项

当create命令完成安装后,您将看到我们的pod已安装完毕。 我们还将看到Xcode自动打开。 工作区项目文件。 现在,由于我们正在使用Xcode 9,因此我们将立即收到项目设置警告 。 因此,继续并在导航器中单击它,然后转到“ 更新为推荐的设置” 。 在这里,我将所有内容保留为默认值,然后单击Perform Changes

现在,我们在这里要做的最后一件事是将新的pod库推送到我们之前创建的GitHub存储库中。 为此,GitHub在回购页面上给了我们一些简单的说明

因此,让我们回到终端并通过Command + K再次清除日志我们需要导航到pods库的根文件夹。

  ->桌面:cd SKImageExtension 
-> SKImageExtension:git初始化
-> SKImageExtension:git添加-A
-> SKImageExtension:git commit -m“使用cocoapod lib模板进行初始提交”
-> SKImageExtension:git remote add origin https://github.com/satish25/SKImageExtension.git〜“替换为您的远程URL”
-> SKImageExtension:git push -u原始主机

我们已经设置了分支主服务器,并添加了所有文件。 现在回到您的回购页面,让我们刷新一下。 我们应该在其中看到我们所有的项目文件,其中包括存储库名称,描述以及第一次推送中包含的最新提交消息。

让我们回到打开Pod库项目的Xcode。

如果展开SKImageExtension根文件夹,则会看到许多文件夹,如上图所示。 现在,我们所关心的唯一文件夹是前三个文件夹:Podspec元数据,示例项目和测试。 在Podspec Metadata文件夹中,我们将找到README,使用许可以及我们将使用所有pod信息进行编辑的Podspec文件。 README文件带有一些很好的默认信息和文档标记,我们可以在我们的GitHub repo页面中看到它们。

现在,导航到Podspec MetaData文件夹并打开SKImageExtension.podspec文件。 因此,这是一个红宝石文件,不必担心我们需要确保以下列出的几行内容的语法

  s.homepage ='https://github.com/satish25/SKImageExtension'〜' 网址应与您的github存储库相同' 
  s.source = {:git =>'https://github.com/satish25/SKImageExtension.git',:tag => s.version.to_s}〜 '网址应与您的github存储库相同' 
  s.source_files ='SKImageExtension / Classes / *。swift' 
  s.frameworks ='UIKit'〜' 仅启用必需的框架' 

完成Podspec更改后,让我们开始创建UIImage View的扩展,该扩展名导航到Pods.xcodeproj- > Development Pods,然后选择“ 移至回收站”选项来删除ReplaceMe.swift文件。 在Development Pods中创建一个新的swift文件 ,如下所示

确保选择了SKImageExtension目标,然后取消选中Pods-SKImageExtension_ExamplePods-SKImageExtension_Tests

现在让我们开始创建自定义UIImage扩展,打开UIImageExtension.swift并编写一个函数使Imageview带有borderColor和borderWidth的圆圈。

 导入UIKit 
 扩展程序UIImageView { 
 公共功能circleImageView(borderColor:UIColor,borderWidth:CGFloat){ 
  self.layer.borderColor = borderColor.cgColor 
self.layer.borderWidth = borderWidth
self.layer.cornerRadius = self.layer.frame.size.width / 2
self.clipsToBounds = true
  } 

现在转到Example项目以测试我们的pod配置是否按预期工作,请转到Main.Storyboard背景色更改为蓝色,将图像视图从对象清单拖放到情节提要上,并确保高度宽度为在我们的示例中相同的点是150pt(高和宽)

为我们刚刚拖放到情节 提要上的图像视图创建一个Outlet ,并通过Images.xcassets文件将任何虚拟图像插入到项目中, 然后将该图像设置为Attribute inspector中ImageView ,并确保将内容模式设置为AspectFill属性检查器中 。 然后在ViewController.swift中导入我们的pod SKImageExtension

然后在ViewDidLoad中调用我们创建的出口,然后从SKImageExtension调用circleImageView函数,如下所示

运行项目并检查模拟器天气imageview是否为圆

完美的按预期工作,我们正处于将Pod验证并发布到Cocoapods库的最后阶段。 继续并启动终端,并确保您的目录设置为桌面上项目的根目录。 所以在我的情况下是SKImageExtension 。 我将运行lint命令,该命令是验证命令pod lib lint ,后跟任何pod的名称,因此在我的情况下为SKImageExtension播客

  -> SKImageExtension:pod lib lint SKImageExtension.podspec 

确保提供的内容用于摘要说明并检查快速版本

稍后将您的所有代码推送到GitHub存储库中,如上所示。接下来我们要做的是在此存储库中创建一个标记发布,我将在GitHub存储库页面上进行此操作。 在此处的主页上,您将看到一个标签栏,其中包含commitsbranchsreleases 。 因此,继续并单击发布

目前还没有任何内容,因此让我们创建一个新版本。 现在,在标记版本中,我们要说的是0.1.0。 现在,这应该与我们拥有的podspec版本完全匹配。 这真的很重要,如果它们不匹配,您的出版物将被拒绝。 现在,由于我只有一个分支,即master分支,所以我将其保持不变,然后单击Publish Release按钮。

现在,将其部署到cocoapods库,因为我们必须通过trunk注册我们的邮件ID,转到终端并确保您位于项目的根目录中,然后键入以下命令

 吊舱中继注册“您的电子邮件ID” 

您将收到来自cocoapods的验证电子邮件 ,其中包含验证邮件,然后您就可以将项目推送到cocoapods库。 现在我们可以真正地将我们的吊舱到行李箱了 。 因此,我们将运行命令pod trunk trunk push ,然后输入我们的pod的名称,因此在我的情况下为SKImageExtension.podspec 。 然后按回车。

 吊舱树干推SKImageExtension.podspec 

现在,这将需要花费几分钟的时间来验证和更新规格仓库,因为这是一个计算量很大的过程。 如果一切按计划进行,您将在终端中看到有趣的祝贺消息,这意味着我们已经成功发布了自己的CocoaPod。

现在剩下的就是等待15到20分钟,使Pod上线,然后将Pod安装到n个项目中。

PS:另外,我还创建了另一个功能,可以从URL下载图像并将其显示在ImageView上,您可以在下面的存储库中找到它。

找到最终的项目存储库链接

Cocopods库链接

干杯..! 快乐编码🙂