iOS-Cocoapods公有库的创建

446 阅读3分钟

公有库的原理

我们为准备制作的公有库生成一个描述文件spec(里面包含了框架的名称、代码的存放地址、版本号等),提交到Cocoapods的远程索引库中,再将我们的源码push到远程仓库中,在我们或者他人,执行

pod setup

命令时,索引文件就被缓存到我们的本地了,在我们使用

pod search 

命令时,本地的索引库就会检索出符合条件的库的描述文件spec

-> SDWebImage (4.0.0)
   Asynchronous image downloader with cache support with an UIImageView
   category.
   pod 'SDWebImage', '~> 4.0.0'
   - Homepage: https://github.com/rs/SDWebImage
   - Source:   https://github.com/rs/SDWebImage.git
   - Versions: 4.0.0, 4.0.0-beta2, 4.0.0-beta, 3.8.2, 3.8.1, 3.8.0, 3.7.6,
   3.7.5, 3.7.4, 3.7.3, 3.7.2, 3.7.1, 3.7.0, 3.6, 3.5.4, 3.5.2, 3.5.1, 3.5, 3.4,
   3.3, 3.2, 3.1, 3.0, 2.7.4, 2.7, 2.6, 2.5, 2.4 [master repo]
   - Subspecs:
     - SDWebImage/Core (4.0.0)
     - SDWebImage/MapKit (4.0.0)
     - SDWebImage/GIF (4.0.0)
     - SDWebImage/WebP (4.0.0)

,从而按照描述文件上面的信息实现安装。

准备工作

  1. 安装cocoapods
  2. 命令行工具
  3. 代码托管仓库(GitHub Coding.net等)
  4. 准备上传的代码

正文

想要创建开源的Pod库,需要注册一个Cocoapods账号,这个操作过程在终端进行,email使用你的GitHub邮箱,如果你在多终端操作时,这也是你的登录命令

$ pod trunk register GitHub_email 'user_name' --verbose

在终端出现如下文字时,

[!] Please verify the session by clicking the link in the verification email

登录你的邮箱进行验证。成功后,在终端输入

pod trunk me

就可以看到你的注册信息啦

datianyedeiMac:demo dream$ pod trunk me
  - Name:     ryanflecher
  - Email:    @163.com
  - Since:    April 1st, 19:40
  - Pods:
    - YGTools
  - Sessions:
    - April 1st, 19:40 - August 10th, 00:15. IP: 183.129.240.106
    - April 6th, 23:03 - August 13th, 00:25. IP: 115.196.216.10 

关于git仓库

关于新建项目仓库这里就不多说了,里面至少要包含你的代码文件、开源许可证(LICENSE)、仓库说明(README.md),还有之后要创建的描述文件,ignore文件也顺便检查一下,有没有忽略你要提交的代码的所属语言,不然后面一定会报错。

编辑描述文件

cd到仓库目录下,在终端输入

pod spec create 你的项目名称

这样就会在仓库中生成 你的项目名称.podspec文件

文件中的相关配置建议搜索一下相关模板,因为很多配置不是必须的,写的越多,错的越多(╯‵□′)╯︵┻━┻,这里就不贴出了。

写好之后,要使用

pod lib lint

命令验证你编辑的描述文件是否正确,当然了,warning和error是常伴我们左右的,比如描述比简介短啦这种的,你可以在后面忽略掉warning

pod lib lint --allow-warnings

**这里我想着重强调一下“s.version = ”不要乱填 因为之后要与你push代码的标签一致 **

验证成功之后,打上和之前“s.version = ”一样的版本号标签,把代码提交到托管仓库。

发布

来到最后,我们将发布我们的描述仓库

pod trunk push 你的项目名.podspec

这一步包括了验证.podspec格式、将.podspec转为JSON、对master进行提交及合并操作。

成功后的样子

Updating spec repo `master`
Validating podspec
 -> YGTools (1.0.0)

Updating spec repo `master`

--------------------------------------------------------------------------------
 🎉  Congrats

 🚀  BYPhoneNumTF (1.0.0) successfully published
 📅  March 7th, 01:39
 🌎  https://cocoapods.org/pods/YGTools
 👍  Tell your friends!

使用

是不是迫不及待想使用了呢,别急,就像我们之前说的,本地索引库还没有更新,所以我们要使用

pod setup

更新一下,如果不出意外的话,你就会查询到你的项目啦。

其他

有的小伙伴使用的demo文件操作的,如果之后想删除掉怎么办呢,我们可以使用

$ pod trunk delete NAME VERSION

命令来删除,更多的命令等你去发现哦。