主页 发布开源项目到CocoaPods
Post
Cancel

发布开源项目到CocoaPods

一、前言

这两天被cocoapods折磨的心力憔悴。看cocoapods官网的添加支持,但是介绍的(ying)比(yu)较(tai)简(cha)单,而且有的步骤也没有写上,导致看着官方文档也没有成功,后来查阅了简书、CocoaChina等等,还是已经接近崩溃。没有一个完整的介绍。索性多个文档对比测试,最后终于成功的让自己Github上的库成功支持Cocoapods安装。

二、开始

这里我将从最初的开始进行介绍,包括Github上创建项目已经上传项目,到最后的支持Cocoapods。 步骤如下:

  • 代码上传Github
  • 创建podspec文件,并验证是否通过
  • 在Github上创建release版本
  • 注册CocoaPods账号
  • 上传代码到CocoaPods
  • 检查上传是否成功

1.代码上传Github

首先我们打开github.com,然后创建自己的项目工程:

这里注意那个MIT License,在后面添加Cocoapods支持的时候会用到(稍后介绍)。然后点击创建即可。 然后用SouceTree将代码down到本地,将自己的项目放到里面,文件夹如图所示:

这里的LICENSE就是刚才说的MIT License添加的文件。RSADemo是示例工程,ZGRSAEncryptor就是提供给他人使用的库。(ZGEncrptor(For java).zip是后端的代码) 然后提交到Github就可以了。

2.创建podspec文件

我们使用终端到工程目录下:

然后执行下面的命令:

1
pod spec create ZGRSAEncryptor

这里的ZGRSAEncryptor就是pod添加市的名字(例如MBProgressHUD)。执行完后的结果:

此时在工程文件夹下也会多一个 ZGRSAEncryptor.podspec文件。这里我用Sublime Text打开并做了如下编辑:

1
2
3
4
5
6
7
8
9
10
11
12
Pod::Spec.new do |s|
  s.name         = "ZGInfoCollection"
  s.version      = "1.0.0"
  s.summary      = "A library for collection device info."
  s.homepage     = "https://github.com/ScottZg/ZGInfoCollection"
  s.license      = "MIT"
  s.author             = { "ScottZg" => "scottzg@126.com" }
  s.source       = { :git =>    "https://github.com/ScottZg/ZGInfoCollection.git", :tag => "#{s.version}" }
  s.requires_arc = true
  s.ios.deployment_target = "7.0"
  s.source_files  = "ZGInfoCollection/*.{h,m}"
end
  • name: 类库的名称
  • version: 库的版本
  • summary: 介绍语

  • homtepage: Github上项目地址
  • license: 许可证
  • author: 作者
  • source: 项目的https链接地址
  • source_files: 要共享的代码,这里是ZGRSAEncryptor下面的所有代码。

接下来执行下面的命令进行验证:

1
pod lib lint ZGRSAEncryptor.podspec

结果多种多样,如果有错,则按照提示进行改错即可。在这里,我执行的结果如下图:

发现了多个警告,只要不是错误就行,警告可以直接忽略(红色也提示如何忽略):

1
pod lib lint ZGRSAEncryptor.podspec --allow-warnings

结果如下:

当看到 ` ZGRSAEncryptor passed validation `之后,就说明验证通过了。

3 在Github上创建release版本

打开项目的目录,然后创建release版本的类库:

点击 箭头指向开始创建release版本,(点击 Create a new release ):

点击 Publish release 即可。创建完成后如图所示:

这样第三步就完成了

4 注册CocoaPods账号

执行命令行:

1
pod trunk register 邮箱地址 用户名 description='描述信息'

执行完之后结果如下:

黄色提示已经发送了一个验证码到邮箱,你可以打开你的邮箱验证即可。打开邮件中的链接后如下:

这样就成功注册了Cocoapods账号。 可以用

1
pod trunk me

检查是否创建成功。成功的结果如下:

5 上传代码到CocoaPods

首先检测文件格式的有效性:

1
pod spec lint

结果如下:

没有错误,但是有警告。可以使用 –allow-warnings忽略:

出现passed validation就说明通过验证了。然后执行:

1
pod trunk push ZGRSAEncryptor.podspec  --allow-warnings

执行结果如下:(速度应该有的慢)

说明了已经上传成功。

6 检查上传是否成功

使用

1
pod search ZGRSAEncryptor

结果如下:

ok,已经成功了。这样就可以让其他人进行搜索使用了。

Cocoapods: pod search无法搜索到类库的解决办法:

执行pod setup
  • 在终端输入pod setup ,会出现 Setting up CocoaPods master repo ,等几分钟,会输入Setup completed,说明 pod setup 执行成功。
  • 结果 pod search 还是失败
  • 在终端输入pod search RxSwift
  • 依然还是提示 Unable to find a pod with name, author, summary, or descriptionmatching 'RxSwift'。
  • 但是我输入 pod search pop,却有相应的结果。
删除 ~/Library/Caches/CocoaPods目录下的search_index.json 文件
  • pod setup成功后会生成~/Library/Caches/CocoaPods/search_index.json文件。
  • 终端输入 rm ~/Library/Caches/CocoaPods/search_index.json
  • 删除成功后再执行pod search
  • 终端输入:pod search RxSwift (不区分大小写)
  • 输出:Creating search index for spec repo 'master'.. Done!,稍等片刻就会出现所有带 RxSwift 字段的类库出现。
该博客文章由作者通过 CC BY 4.0 进行授权。

文章目录

macOS 开发之 Core Graphics入门教程

pod私有库制作关于swift version的警告