最近在研究如何在github上创建公有库,上传代码后可以用CocoaPods引入到工程中。走过了不少坑,但功夫不负有心人,终于从坑里爬出来了。
文笔不好,综合了别人的技术文章,自己在添油加醋,草草的总了下操作步骤,如有问题请提出来。
下面的步骤做出来的参考:https://github.com/devchena/ColorImageUtils
步骤
1.上传代码到指定github
2.创建 .podspec 文件
3.在github上创建release版本
4.注册CocoaPods账号
5.上传项目代码到CocoaPods
6.检查是否上传成功
7.更新框架版本
1.上传代码到指定github
个人使用
Github Desktop客户端
(具体操作步骤),其他方式请Google
,这里不多介绍。(不介绍的原因是我不会 >=<)
在github下载支持CocoaPods的代码,都会有.podspec
、License
和.gitignore
(该文件为隐藏文件),但是通过Github Desktop客户端
push上去的是没有License和.gitignore这两个文件的。肿么办?我们可以copy两个这样的文件到自己的工作目录,然后上传到github。
copy后放到项目路径下:
添加License和.gitignore
上传到github:
2.创建 .podspec 文件
打开终端进入项目的根目录,终端输入命令
pod spec create specName
来创建(specName即为你的.podspec文件名)
创建成功后可以选择Xcode打开该文件,去掉多余的注释,按照个人需求编辑完后我的ColorImageUtils.podspec文件如下:
ColorImageUtils.podspec顺便贴下本地文件路径作参考:
CocoaPods引出的文件以及主要字段含义:
3.在github上创建release版本
编辑tag,创建release版本点进去后填上版本号、标题和简单的描述,点击Pulish Realise
成功即可。
注意:版本号必须与
.podspec
文件中的s.version
相同
4.注册CocoaPods账号
打开终端,在终端中输入如下命令
pod trunk register 邮箱地址 '用户名' --description='描述信息'
然后根据终端显示信息,如果成功的话会提示让你去邮箱里确认进行激活
输入如下命令可查看个人cocoapods账号信息
pod trunk me
5.上传代码到CocoaPods并检查是否上传成功
上传代码到github前,需要验证.podspec
文件内容格式是否有效,终端命令如下:
pod spec lint
注意:终端命令
pod spec lint
要在.podspec文件目录下执行(这是个坑)
如果文件通过验证,终端会有如下提示:
没有通过的话,终端会给你展示错误信息和警告。有错误的话请解决掉,否则不能上传。但是如果有不影响上传的警号的话,可以在终端命令“pod trunk push specName.podspec”后加上"--allow-warnings",下面有介绍。
接着,我们可以把我们的开源项目push到github仓库上了,终端命令如下:
pod trunk push specName.podspec --allow-warnings
1.
specName.podspec
就是配置的.podspec文件全名。如果你不在.podspec文件目录下执行上面的终端命令的话,也可以指定podspec文件的绝对路径。
2.上面终端命令里使用了"--allow-warnings",为忽略警告的意思。如果在pod spec lint
时终端报出了警号,但是在pod trunk push时不加"--allow-warnings"的话上传是不会成功的。
上传成功后终端提示如下:(我上传时没有加"--allow-warnings",因为.podspec文件验证时没有警告)
pod trunk push specName.podspec6.检查是否上传成功
终端执行命令搜索:
pod search ColorImageUtils
“ColorImageUtils“即为.podspec文件前缀名,如果成功的话,终端提示如下信息:
上传成功建个项目用CocoaPods引入下试试:
pod 'ColorImageUtils', '~> 1.0.0'
7.更新框架版本
如果需要更新框架新版的话,只需要在github上创建新的release版本(注意:版本号与podspec文件的s.version保持一致),在此执行终端命令即可
pod trunk push specName.podspec --allow-warnings
本文只做一个学习参考,内容和其他技术文章有很多出入(绝对非copy)。对于上传复杂些的框架,还没有做过尝试,后期有实践的话将会补充。
参考文章
http://www.cocoachina.com/ios/20150228/11206.html
http://www.jianshu.com/p/f332b2c53280#
网友评论