CocoaPods
CocoaPods是一个非常好用的第三个依赖库的管理工具,基本每一个iOS Coder都会使用它的吧.除了管理依赖库,它还有更加强大的一个功能,那就是创建podspec,链接私有库或者发布公有库.
创建私有Spec Repo
这个就在码云的平台上示例吧
1.在码云平台上创建私有库,用来存放.podspec描述文件
2.将远程私有库链接到本地
复制你码云上的私有库https地址,执行下面语句来链接远程私有库
1 | pod repo add MySpec https://私有库https地址 |
去~/.cocoapods/repos目录下查看是否有MySpec文件夹,如果有则这一步执行成功.(Command+shift+.可显示隐藏隐藏文件夹)
其中master是CocoaPods公有库,而MySpec则是你自己的私有库
执行pod repo也可查看是否已经链接上了远程私有库
创建私有库
1.创建Lib Code
cd到你存放私有库的目录,然后执行pod lib create xxxxx,会出现下面选项让你选择(xxxxx为你的库名称,最好取名加上前缀,注意先搜索一下CocoaPods中是否有该名称,需要与CocoaPods中已有库的名称不同,不然后面上传公有库的时候会有问题)
可以按照我的截图来填写,如果不同的话则选择另外选项
2.替换文件
填完信息之后,会创建一个库工程,并会用xcode自动打开该工程.
打开工程目录,找到下面截图的ReplaceMe.m文件,把这个文件替换成你的代码文件.
如果有图片资源,则把图片等资源文件拷贝到Assets中,将来引用这个库的时候,Assets中的图片文件会一并引用.
打开终端,cd到.podspec文件目录,执行pod install,则在工程中已引入你刚才的代码文件(这里会出现一个问题,就是图片可能没有引入,则需要手动把图片拖入工程/Development Pods/xxxxx(你的库名称)/Resources中)
3.github代码托管以及编辑podspec
在github上新建repository
如图,如果你想建的是私有库,不被别人看到的,则选择Private选项,我这边选择Public,后面要上传至CocoaPods公有库.你这边的名字与上面的库名称相同.当然,你也可以在码云或者其他平台上实现代码托管,原理是相同的.创建好了记录下git地址
在xcode编辑器内找到podspec文件
初始情况下修改summary,description,homepage,source,resource_bundles,注释已经写在在截图中,看个人情况修改.
完成之后,进行远程仓库代码托管.依次执行以下命令
初始化git: git init
与远程库关联: git remote add origin https://xxxxxx
添加所有文件: git add .
填写修改或新增的内容: git commit -m "修改或新增的内容"
上传: git push -u origin master
标记tag(与podspec中的tag相同): git tag '0.1.0'
将tag提交到远程: git push --tags
刷新github项目地址看上传是否成功
4.podspec验证上传
本地验证podspec:pod lib lint --allow-warnings
xxxxxx passed validation
说明验证通过
同理远端验证podspec:pod lib lint --allow-warnings
如果出现Error,则需要一个一个去解决
上传到私有库:pod repo push MySpec xxxxxx.podspec
此时还会再验证一次,验证通过则上传成功,在~/.cocoapods/repos/MySpec可以看到你上传的库,同时在远端,也就是码云上面,也可以看到你上传的库
5.验证私有库导入
如何验证我们的库是否可用呢?执行以下操作:
新建一个iOS测试工程
创建podfile文件
执行
pod repo
查看源,复制私有库的源
在podfile文件中添加私有库源: source ‘https://私有库源’
在podfile文件中导入私有库 pod ‘私有库名称’
在终端中cd 到podfile所在文件,执行pod install操作
打开’工程.xcworkspace’,在Pod中可看到私有库的代码
如果只想创建私有库使用的到这边就已经结束了,创建公有库的朋友再耐心点继续看下去.
上传公有库到cocoapods
注册cocoapods: pod trunk register 邮箱 '用户名' --verbose
去邮箱查看cocoapods发给你的邮件,打开链接
检验注册结果: pod trunk me
上传库: pod trunk push xxxxx.podspec
更新本地库: pod update
搜索你的库: pod search xxxxx
,如果找不到,先执行下面一步
在测试工程podfile中,pod xxxx导入库,再把私有库源从podfile中删掉,再执行 pod install
,如果能成功导入,则说明上传成功了.