转载请注明原链接:http://www.jianshu.com/p/950026d788bd
一、前言
这两天被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文件
我们使用终端到工程目录下:
然后执行下面的命令:
pod spec create ZGRSAEncryptor
这里的ZGRSAEncryptor就是pod添加市的名字(例如MBProgressHUD)。执行完后的结果:
此时在工程文件夹下也会多一个ZGRSAEncryptor.podspec文件。这里我用Sublime Text打开并做了如下编辑:
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下面的所有代码。
接下来执行下面的命令进行验证:
pod lib lint ZGRSAEncryptor.podspec
结果多种多样,如果有错,则按照提示进行改错即可。在这里,我执行的结果如下图:
发现了多个警告,只要不是错误就行,警告可以直接忽略(红色也提示如何忽略):
pod lib lint ZGRSAEncryptor.podspec --allow-warnings
结果如下:
当看到ZGRSAEncryptor passed validation之后,就说明验证通过了。
3 在Github上创建release版本
打开项目的目录,然后创建release版本的类库:
点击 箭头指向开始创建release版本,(点击 Create a new release):
点击Publish release即可。创建完成后如图所示:
这样第三步就完成了
4 注册CocoaPods账号
执行命令行:
pod trunk register 邮箱地址 ‘用户名’ —description='描述信息'
执行完之后结果如下:
黄色提示已经发送了一个验证码到邮箱,你可以打开你的邮箱验证即可。打开邮件中的链接后如下:
这样就成功注册了Cocoapods账号。
可以用
pod trunk me
检查是否创建成功。成功的结果如下:
5 上传代码到CocoaPods
首先检测文件格式的有效性:
pod spec lint
结果如下:
没有错误,但是有警告。可以使用 --allow-warnings忽略:
出现passed validation就说明通过验证了。然后执行:
pod trunk push ZGRSAEncryptor.podspec --allow-warnings
执行结果如下:(速度应该有的慢)
说明了已经上传成功。
6 检查上传是否成功
使用
pod search ZGRSAEncryptor
结果如下:
ok,已经成功了。这样就可以让其他人进行搜索使用了。
三、总结
百度、Google了多篇文档,然后进行总结,终于实现了构建自己的Cocoapods库。在后面我将会继续学习怎么在本地进行构建、怎么在公司多人开发的时候进行构建私有库开发。
四、参考文档:
1、http://www.cocoachina.com/ios/20160415/15939.html
2、http://www.cocoachina.com/ios/20160907/17501.html
3、https://cocoapods.org/