CocoaPods学习一:创建自己的公共库
问题一:什么是自己的公共库?
自己的公共库,就是把自己的项目提交到公开的仓库管理平台,例如GitHub,开源中国等等。使用pod repo命令创建.podspec,并发布到cocoapods的公共索引库。
问题二:这样做的好处是什么?
通常在开发过程中,大多时候,我们有很多公共的方法,例如验证手机号是否合法,一些设置UIView的操作。为了避免写一些重复的代码,我们通常会把这些方法放在分类里面,或者做成一些公共组件,在工程不同的地方都可以用到。为了以后这些方法可以在其他工程也可以用到,我们可以使用cocoapods把这些小功能,封装成一个我们自己的库,下次使用的时候只要pod配置到工程里面,就可以了。
步骤一:在GitHub创建工程仓库
以在GitHub上面创建工程为例,我们现在GitHub上面创建一个工程
我这里选择的是公有库,.ignore我们选择objective,或者swift。证书我们选择MIT就可以,这个后面是可以改的。点击create后,我们把工程clone到我们本地来。
步骤二:创建. podspec文件
1)创建方法一:
第一种方法,我们去到clone指定的目录,创建一个Classes文件夹(一般这个名字,也可以去其他的),把想放在公共库的文件拷贝进去。
命令执行:
$ pod spec create CLBasicLib //CLBasicLib是你的库名
这里创建了.podspec文件,这个文件就是最重要的。去看看文件夹里面是不是多了这个文件,如图:
打开.podspec文件,通过编辑器打开,修改相应的内容,想详细了解更多的.podspec文件内容,请看官网介绍:Specs and the Specs Repo。把不需要的删除,修改完后如图:
大概有这些:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| s.name //一般不需要修改,它对应.podspec文件的名字,如果不相同就会报错;
s.version //是你库的版本号;
s.version //库简介;
s.description //库描述,这个库描述一定要比简介长;
s.homepage //远程仓库的主页,对应你项目库的主页,不是项目地址,不带.git后缀的;
s.license //是证书,刚开始创建远程项目时选择的;
s.author //作者联系名和邮箱;
s.platform //支持的平台,这个必须要的,要不会包错,包没有找到头文件或者没有找到UIKit;
s.source //资源的地址和tag,这里的地址是库的地址,带.git的,tag要对应远程的tag;
s.source_files //资源文件,通过这路径找到对应的文件;
s.public_header_files //暴露的.h文件,用到静态库;
s.requires_arc //是否支持ARC;
s.ios.vendored_libraries //静态库路径,我这里用到了静态库。
|
.podspec文件是根据你项目具体情况来配置的,有很多我也没有用到,比如资源库、依赖的第三方库、frame框架、系统框架等等,具体请去官网看介绍,这里不一一说了。
步骤三:把本地代码上传到远程仓库,打上对应的tag版本
1 2 3 4 5
| $ git add .
$ git commit -m "xxxx"
$ git push
|
打上tag
1 2 3
| $ git tag "0.0.1"
$ git push --tags
|
步骤四:注册Cocoapods账号
可以通过在命令行输入$ pod trunk -h
查看pod trunk的相关命令。
1 2 3 4 5
| $ pod trunk me //查看有没有注册,有的话就是相关的注册账号的信息
$ pod trunk register 邮箱地址 ‘用户名’ --description='描述信息' //注册Cocoapods账号
$ pod trunk push xx.podspec --allow-warnings //提交到pod,最后用到
|
步骤五:验证pod是否通过
验证pod配置是否通过
1 2 3 4 5 6 7
| $ pod lib lint //本地验证
$ pod spec lint //本地和远程验证
$ pod lib lint --verbose //显示详细的检测过程,出错时会显示详细的错误信息
$ pod lib lint --allow-warnings //允许警告,用来解决存在警告导致不能通过校验的问题
|
如果出现绿色字passed validation就是验证通过,如图所示:
步骤六:提交pod和检查库
pod验证通过,就可以执行命令提交了
$ pod trunk push xx.podspec --allow-warnings
如果没有问题,等待几分钟就ok了,再执行$ pod trunk me
,可以看到自己的信息,和自己的库,如图所示:
可以通过$ pod search xxx
搜索自己的库了,如果搜索不到,请清理一下pod缓存
1
| $ rm ~/Library/Caches/CocoaPods/search_index.json //删除pod的缓存
|
步骤七:版本更新
版本更新,和第一次提交的步骤差不多,简单的说明一下:
1.更改.podspec里面的版本号
1
| s.version = "0.0.2" //修改0.0.2版本,不能是之前的版本,要不提交不成功
|
2.提交到远程仓库
1 2 3 4 5
| $ git add .
$ git commit -m "xxx"
$ git push
|
3.打tag并提交
1 2 3
| $ git tag "0.0.2"
$ git push --tags
|
4.验证pod,并提交到cocoapods
1 2 3 4 5
| $ pod spec lint //本地和远程验证
$ pod trunk push xx.podspec --allow-warnings`
$ pod search xxx //查询库
|
结束
上面内容就是创建自己的公有库的过程,其实个人觉得发布的步骤可以忽略,因为自己做的库,一般只是自己用到,不需要发布到cocoapods,我们一般只要在podfile里面指定需要pod的库的git地址就可以
1 2 3 4 5
| //指定分支 pod 'xxxx', :git => 'https://github.com/cameronli/CLBasicLib', :branch => 'develop', :subspecs => [ 'Core', 'UI' ]
//指定tag pod 'xxxx', :git => 'https://github.com/cameronli/CLBasicLib', :tag => '0.0.2', :subspecs => [ 'Core', 'UI' ]
|
以上,谢谢阅读