前言
Cocoapods可以说是我们iOS开发用到的最多的一个工具了,很多开源的框架、第三方,都可以通过一句pod install
加载到我们的工程中,超级方便,尤其是在Swift和OC的混合开发中,完全可以不用去管这些框架的语言,都是以静态库的形式倒入,最多建个桥联文件就可以使用,可以说是so easy~而且可以方便管理这些第三方的版本,依赖,节省很多开发时间。说了这么多Cocoapods的好处,我们也试着来把自己写的开源库上传到Cocoapods,方便大家使用。
上传Git
这里我用一个我写的叫做FXDropDownMenu的工程为例,首先我们要把这个工程上传到Git,这里我使用的是Github,当然其他的Git也是可以的,例如国内的开源中国的码云(我经常使用),工具是Sourcetree:
![](https://img.haomeiwen.com/i3569202/e5edba90bfea00bd.png)
编辑好一个完整的版本,上传之后,记得上传一个Tag给上传的版本,这里我们设置tag为1.0
![](https://img.haomeiwen.com/i3569202/3f1f23f833081d76.png)
![](https://img.haomeiwen.com/i3569202/c2b3a22c08704a59.png)
标签推送成功之后,可以在我们的分支顶上的版本里看到标签
![](https://img.haomeiwen.com/i3569202/7202407441b67706.png)
创建Podspec描述文件
在我们本地Git下的工程里,进入工程根目录,使用pod spec create FXDropDownMenu
命令,这里的名称写自己的框架的名称
![](https://img.haomeiwen.com/i3569202/876140e4ced3ac8b.png)
命令窗绿字提示成功,就可以在我们刚才的目录里看到一个后缀名为
.podspec
的文件,用文本编辑器打开编辑,我使用Xcode打开的,万能的Xcode,这个文件里的备注写的很清晰,告诉我们怎么填写,这里我列一些重要的出来:
s.name = "FXDropDownMenu"
s.version = "1.0"
s.summary = "简单好用的下拉点击菜单"
s.description = <<-DESC
"简单好用的下拉点击菜单"
DESC
s.homepage = "https://github.com/Fxxxxxx/FXDropDownMenu"
s.screenshots = "https://img.haomeiwen.com/i3569202/7a9113c911097f20.gif?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240"
s.license = { :type => "MIT", :file => "LICENSE" }
s.author = { "Fxxx" => "e2shao1993@163.com" }
s.social_media_url = "http://www.jianshu.com/u/3ca8f0368b98"
s.platform = :ios
s.source = { :git => "https://github.com/Fxxxxxx/FXDropDownMenu.git", :tag => "1.0" }
s.source_files = "FXDropDownMenu", "FXDropDownMenu/*.{h,m}"
s.resources = "FXDropDownMenu/FXDropDownMenu.bundle/*.png"
s.framework = "UIKit"
# s.dependency "JSONKit", "~> 1.4"
按照自己的信息填写:
- homepage是这个工程Git的主页;
- description框架描述
- screenshots是截屏的效果展示(选填),填一个线上的图片地址就好;
- social_media_url是作者的社交账户地址(选填);
- s.platform = :ios, "7.0"是你项目类别,可以在之后填上你的框架需要的系统最低版本号;
- license是你在创建这个Git的时候勾选生成的,一般Git使用MIT,如果建Git目录的时候忘记生成了,从其他项目复制一个过来也可以,放在根目录;
- source这个比较重要,是你的源地址。Cocoapods会从这个地址拉取你的项目,这里要填上我们刚才推送的版本号
-
source_files这个很重要,不能填错,是你的框架的代码文件
FXDropDownMenu/**/*.{h,m}
,因为我这里是直接放在Git工程的根目录下的,*.{h,m}是指要编译的文件格式
image.png
image.png
- resources如果你有资源文件,例如图片什么的,路径写在这里
- framework你需要的系统静态库
- dependency你的框架需要使用的其他第三方,没有就注释掉
验证podspec文件
信息填好保存之后,我们需要通过Cocoapods的验证,进入podspec所在的目录,执行
pod spec lint FXDropDownMenu.podspec
![](https://img.haomeiwen.com/i3569202/8af2e075ae119200.png)
我这里没有通过验证,两个错误,一个警告,阅读一下就知道问题所在了,我们的description为空,在文件中找到这个地方,补充上,之后记住这个必填,我上面的列表里是更正过的,这里只是告诉大家怎么处理验证不通过
![](https://img.haomeiwen.com/i3569202/990d3c52213e04c2.png)
改完之后,我们重新提交验证,这次绿字顺利通过
![](https://img.haomeiwen.com/i3569202/03d7040c90ebc675.png)
Trunk发布自己的Pods
1. 注册Trunk,如果你的电脑已经注册,绕过这一步
pod trunk register email 'name'
这里email
填自己的邮箱,name
填自己的称呼,提交之后,系统会发一份邮件到这个邮箱验证
![](https://img.haomeiwen.com/i3569202/d38a5ffcc3d7c214.png)
![](https://img.haomeiwen.com/i3569202/5495530324e8f65a.png)
去这个链接验证就好了,验证成功
![](https://img.haomeiwen.com/i3569202/add5ec843589bfb0.png)
注册完成,我们
pod trunk me
就可以看到我们的信息了![](https://img.haomeiwen.com/i3569202/a99c6a60626a043b.png)
2. Trunk Push把我们的框架提交到Cocoapods
做到这一步就很简单了,命令行pod trunk push
,回车提交,等待ing
![](https://img.haomeiwen.com/i3569202/fe63de0ba25c47ce.png)
等待完成之后,大功告成啦,之后就可以像其他第三方那样,直接使用Cocoapods倒入了,是不是很方便😊
PS:关于更新自己的pods版本,重新填写podspec,填写新的版本号和新版本的git tag,像上述步骤一样提交就好了
欢迎更正错误和交流,回复评论和私信皆可
网友评论