配置podspec文件(一)

项目中我们经常用CocoaPods去下载第三方,如何通过同样的方式下载到自己上传的框架呢?本文就这个问题,做一番简单阐述。

解决问题之前我们需要对cocoapods图解机制有个大致的了解。

先上一张图:


配置podspec文件(一)_第1张图片
cocoapods.png

从上图可以看出上传一个自定义的框架之前需要搞一个目标框架的描述文件(.spec文件)。

  • spec 文件

工作的前提是有个自己的框架,可以随便上传一个工程用来练手。假如这个工程已经存在,名字是 RAC-MVVM。这里用到了 git 命令 ,不会的同学可以参考这边文章。

首先进入到 RAC-MVVM 所在目录,执行命令:

pod spec create RAC-MVVM

结果:

Specification created at RAC-MVVM.podspec

表明工程的描述文件已经创建成功。在目录下截图:


spec.png

这里已经创建好了podspec文件,下一步就是对这个文件进行编辑。具体编辑哪些信息呢?这里先提供一个远程库中的三方spec文件内部结构图:


配置podspec文件(一)_第2张图片
cocoapods:spec.png

可以参考这个里面提示的字段进行修改,部分修改截图:


配置podspec文件(一)_第3张图片
commit_01.png

配置podspec文件(一)_第4张图片
commit_02.png

修改字段差不多就这么多了。

修改完成之后,我们可以给这个框架打个标签:

git tag '0.0.1'

然后

git push tags

接下来看怎么上传到远程库?

分为两步:
  • 身份验证

CocoaPods Trunk是一种身份验证和CocoaPods API服务。 要将新的或更新的库发布到CocoaPods以进行公开发布,您需要在Trunk中注册并在当前设备上拥有有效的Trunk会话。 您可以在博客上了解Trunk的历史和发展,以及您自己或团队的私人吊舱。

CocoaPods Trunk从CocoaPods 0.33开始提供。 pod trunk下的一系列命令可自动部署和管理Podspecs。 您可以随时运行pod trunk [command] --help来查看内联帮助。

使用邮箱注册

$ pod trunk register [email protected] 'Orta Therox' --description='macbook air'
// 修改上述命令
$ pod trunk register [email protected] 'wangxiaoer' --verbose

注册以后,打开注册使用的邮箱。单击电子邮件中的链接,Trunk会向您发送以验证Trunk帐户与当前计算机之间的连接。 您可以通过运行 pod trunk me列出您的会话。

邮箱的内容如下:

Hi wangxiaoer,

Please confirm your registration with CocoaPods by clicking the following link:

// 下面的内容需要在网址中打开
https://trunk.cocoapods.org/sessions/verify/8b6d2e48
If you did not request this you do not need to take any further action.

Kind regards, the CocoaPods team

按照上述操作,就会出现下面的界面:


配置podspec文件(一)_第5张图片
success.png

表明已经注册完成!!

  • 提交

其实在上述的截图中已经看出了如何提交的指令:

$ pod trunk push RAC-MVVM.podspec

有可能终端会报错如下:


配置podspec文件(一)_第6张图片
error.png

根据箭头提示修改本地的spec文件,然后更新到远程仓库。
修改如下:


配置podspec文件(一)_第7张图片
commit_03.png
commit_04.png

修改之后,从新执行:

git add .
git commit -m"信息"

然后再次执行:

$ pod trunk push RAC-MVVM.podspec

tips:(这里要注意:上述代码是从本地仓库push到远程仓库,所以做了修改要提交到本地仓库)。

操作完成!!进入终端,像搜其他牛逼三方一样去搜一下自己的三方,试试看!

瞬间打脸啊。。。。哪里搞错了?

在cocoapods图解机制这篇文章中已经说了,pod search xxx 是从本地仓库的 索引文件中去搜索的!我们只是将spec文件传到了远程仓库,本地仓库并没有啊,所以,所以,所以搜不到。删除本地的spec文件,然后终端中执行指令:

pod setup

更新一下本地仓库就OK了!!!

你可能感兴趣的:(配置podspec文件(一))