CocoaPods 公有库, 私有库的创建

CocoaPods 公有库, 私有库的创建

* 公有库

    1. 创建远程公有库,我们是用trunk的方式
  • 1.1: 注册CocoaPod.
$ pod trunk register <#邮箱地址#> <#用户名#>
  • 1.2: 一般我们使用的是Github的邮箱跟用户名,注册之后,邮箱会收到发给你的邮件,我们点击链接跳转即可.然后回去终端上执行
$ pod trunk me

我们就可以查看到注册的信息,还可以随时查看自己发布过的Pods.
例如下图:


CocoaPods 公有库, 私有库的创建_第1张图片
15439843082883.jpg
  • 创建文件夹并上传到共享仓库
    共享仓库必要文件:
    1.共享文件(就是存放pod代码的文件)
    2.LICENSE(开源许可证,MIT)
    3.pod库的描述文件(记录你这个库的信息,这个是要给CocoaPods,根据你这个文件找到你的代码库)

创建代码仓库有两种:
A. 终端执行: --->终端执行后,跳过 步骤2.3

$ pod lib create 库名

B. 直接往下走

  • 2.1 在github上创建代码仓库:


    CocoaPods 公有库, 私有库的创建_第2张图片
    15439894278191.jpg
  • 2.2 将项目clone到本地
  • 2.3 在仓库目录下,在终端使用命令,创建.podspec文件
$ pod spec create <#文件名#>
  • 2.4 修改.podspec文件:
Pod::Spec.new do |s|
  s.name         = "XTRunTimeTest" #名称
  s.version      = "0.0.1" #版本号
  s.summary      = "XTRunTimeTest是一个快速开发工具包 "  #总结
  s.description  = "XTRunTimeTest是一个开发工具包,包含了一些控件封装,工具类等,可加快开发速度。"  #描述
  s.homepage     = "https://github.com/xiongHenry/XTRunTimeTest" #主页地址
  s.license      = "MIT  #协议
  s.author             = { "xiongtao" => "[email protected]" }  #作者信息
  s.platform     = :ios #平台
  s.source       = { :git => "https://github.com/xiongHenry/XTRunTimeTest.git", :tag => "#{s.version}" }  #源码地址
  s.source_files  = "Core/*.{h,m}"  #源码文件
  s.requires_arc = true #是否支持ARC
end

注意: .podspec文件中的homepage和source不支持ssh协议地址,所以我们得放入http/https地址.

解释:

s.name:名称,pod search 搜索的关键词,注意这里一定要和.podspec的名称一样,否则报错

s.version:版本号

s.ios.deployment_target:支持的pod最低版本

s.summary: 简介

s.homepage:项目主页地址

s.social_media_url:社交网址,这里我写的微博默认是百度,如果你写的是你自己的博客的话,你的podspec发布成功后会@你

s.license:许可证

s.author:作者

s.source:项目的地址

s.requires_arc: 是否支持ARC

s.source_files:需要包含的源文件

s.public_header_files:公开的头文件

//其他

s.resources: 资源文件

s.dependency:依赖库,不能依赖未发布的库,可以写多个依赖库
  • 2.5 在完成.podspec文件的编写后,我们需要验证其合法性,是否有错误,在终端输入:
$ pod lib lint <#文件名#>.podspec

如果遇到警告的话,就执行:
这个就是忽略其警告

$ pod lib lint <#文件名#>.podspec --allow-warnings

如果没有问题就会出现

<#文件名#> passed validation.

如果出现错误,就根据提示的错误去修改

  • 3.0 在检查代码,各种准确无误之后,我们就需要将内容添加并推送到远程仓库.
$ git add .
$ git commit -m "提交的内容"
$ git push origin master
  • 3.1 给仓库打包tag标签,发布一个release版本
    *标签相当于你的你仓库的一个包, 标签号要与.podspec文件文件中s.version = "0.0.1"对应,这样就可以在终端下输入一下命令:
$ git tag '0.0.1' #要打包的版本号
$ git push --tag #推送到远端仓库
  • 4.0 发布自己的库到cocoaPods.
  • 4.1我们将库的描述文件(.podspec文件)发布到cocoaPods,在终端下输入:
$ pod trunk push <#文件名#>.podspec

这个命令其实执行了很多操作:
A.更新本地 pods 库~/.cocoaPods.repo/master
B.验证.podspec文件格式是否正确
C.将.podspec文件转成JSON格式
D. 对master仓库 进行合并、提交.master仓库地址

  • 5.0最后就是使用仓库了
    

我们可以通过命令搜索到:

$ pod search "<#库的名字#>"

如果没有搜索到就更新一下本地仓库信息,执行命令:

$ pod repo update

如果出现了库的信息,说明成功了,现在你就可以在你的Podfile文件里面添加使用自己的仓库了.

  • 6.0. 更新维护
    如果你需要更新,维护库
    • 更新你的.podspec文件中的版本号
    • 重新打赏tag标签推送到远端
    • 再将.podspec文件推送到远端

最后我们的公有库就完成了

* 私有库

私有的,我是直接在公司的GitLab上创建的,在github或者码云上是一样的.

  • 1.0 创建版本库
  • 1.1 跟版本库一样,我们在远端创建一个版本库
  • 1.2 创建版本库后,到终端,我们将这个远程的私有版本库添加到本地.在终端输入:
$ pod repo add <#本地版本库的名称#> <#版本库的地址#>

这样就可以在~/.cocoapods/repos发现,多了一个你创建的一个储存库

  • 2.0 创建代码库
  • 2.1 创建私人代码库,创建的时候添加 LICENSE, README.md
  • 2.2 将私人代码库clone到本地,并创建.podspec文件,并编辑.podspec文件,准备好你的代码放入(跟公有库操作一致)
  • 2.3 准确无误之后,推送到远端
$ git add .
$ git commit -m "提交的内容"
$ git push origin master
  • 2.4 然后打包tag,发布到远端
$ git tag '0.0.1' #要打包的版本号
$ git push --tag #推送到远端仓库
  • 2.5 验证.podspec文件,在终端输入:
$ pod lib lint  #验证本地连接
$ pod spec lint  #验证远程连接
  • 2.6 将库的.podspec文件推送到我们第一步的私有版本库中(也可以是已经有的自己的私有版本库).在终端执行:
$ pod repo push <#自己本地版本库名称#> <#描述文件名称#>.podspec
//或者忽略警告
$ pod repo push<#自己本地版本库名称#> <#描述文件名称#>.podspec --verbose --allow-warnings  

这个命令的过程:
A.验证 xxxx.podspec 文件
B.拉取远程版本库 MySpecRepo
C.添加 xxxx.podspec 到版本库中
D. push到远程

这个时候我们就会发现在 ~/.cocoapods/repos/路径下我们自己的版本库中新增了刚才加入的仓库描述信息

  • 2.7 最后,更新我们自己的版本库就可以了,终端执行:
$ pod repo update

这样我们的私有库就做完了

* 私有库的使用

使用私有库我们需要在我们的podfile文件里面添加上我们版本库的地址 (注:是版本库,不是代码库)

source '私有版本库的地址'

如果还使用的公有库,需要把公有库的版本库地址也写上

source '公有版本库的地址'

如果不知道版本库地址是多少,在终端执行:

$ pod repo list

就会出现版本库地址,如下图,箭头所指就是版本库地址


CocoaPods 公有库, 私有库的创建_第3张图片
15439941338820.jpg

那么,我们的公有库跟私有库就完成了

相关文章:
https://www.jianshu.com/p/205a99c121a8

你可能感兴趣的:(CocoaPods 公有库, 私有库的创建)