前言
前两天项目上需要组件化开发,所以就研究了一下CocoaPods
的私有化仓库,结合了几篇文章之后,写下了自己的一些经验以及建立流程,至于具体私有库是什么我不在赘述,直接开始建立私有库吧。
首先我们先想一下我们要写一个什么类,就比如说一个工具类吧ForkToolKit
,这都不重要,下面正式开始。
第一步
找一个地方放你的项目,比如桌面(cd ~/Desktop/)
输入第一条命令:
pod lib create ForkToolKit
漫长的等待,也许很快。如下图
等待.....
OK,下面就是clone成功之后,我们需要配置一下,下面我是这么配置的,大家可以按照自己的需求进行配置。
屏幕快照 2016-12-05 16.04.55.png
接下来我们找一个放代码的地方,比如说公司的git仓库,或者CocoaChina的,或者coding.net的,或者github上,我这网,还是选择了coding.net,走起。
创建一个项目ForkToolKit:(怎么创建的我就不说了,带上README.MD 和 LICENSE)
屏幕快照 2016-12-05 16.01.58.png
第二步
打开刚才clone下来的ForkToolKit,并展开Podspec Metadata这个文件夹,然后打开ForkToolKit.podspec,我们开始编辑这个东西。
屏幕快照 2016-12-05 16.13.29编辑完成之后,就像上面的一样,你也可以多配置几项,看你自己的工具类需求了。然后我们cd到项目中(看下图位置)输入下面这行命令来验证一下是否编辑正确。
命令:
pod lib lint ForkToolKit.podspec
屏幕快照 2016-12-05 16.22.16.png
验证成功,如果验证失败就去看看刚才你编辑的那个文件是否是按照规范去编辑的,不允许有warnning 和 error。
然后打开Xcode的这个项目:删除ReplaceMe.m增加一个类ForkToolkit
然后上传代码到coding.net的git仓库里。
git add .
git commit -m "Initial Commit"
git remote add origin https://git.coding.net/forkingghostt/ForkToolKit.git
git push -u origin master
我们push的时候肯定有冲突,因为仓库里有README.MD和LICENSE所以我们先把代码拉下来,然后解决冲突之后再提交并且重新push到git上去。
屏幕快照 2016-12-05 16.31.37.png然后我们git仓库里也有了代码
屏幕快照 2016-12-05 16.34.52.png第三步
给这个项目打tag值,我们刚才的ForkToolKit.podspec这个文件里有个版本号:0.1.0,我们也要打tag值为0.1.0,这个版本号,跟随你的代码变更和上传而更改,就像更新app版本一样的更新版本号。
git tag 0.1.0
git push origin 0.1.0
第四步
我们再去coding.net创建一个项目叫:TestSpec 就是项目索引仓库。这个项目里面放的是ForkToolKit的索引地址啊,版本号啊,等等,就是为了让你找到你的ForktoolKit的一个东西,相当于一本书的目录。和ForkToolKit一样,也是需要LICENSE和README.MD就不放图了。
然后:下面的吧啦吧啦输一下,git地址是你刚才创建的TestSpec的地址
屏幕快照 2016-12-05 16.51.27.png
最后:终端cd到你的ForkToolKit的项目里边
pod repo push TestSpec ForkToolKit.podspec
屏幕快照 2016-12-05 17.00.16.png
OK,大功告成
pod search ForkToolKit
屏幕快照 2016-12-05 17.02.09.png
然后再新建一个项目(TestPod)测试一下:
source 是你的仓库索引地址。
source 'https://coding.net/u/forkingghostt/p/TestSpec/git'
platform :ios, '8.0'
target 'TestPod' do
pod 'ForkToolKit', '~> 0.1.0'
end
然后
pod install
打开项目,就看到了你自己建立的pod库。
屏幕快照 2016-12-05 17.14.24.png
如果你修改了你的库代码,然后就按照前面的编辑文件,上传代码,修改tag值,push索引仓库....等等。就可以了。
建立简单的私有仓库,就这么多,当然里面还有很多的东西,但是简单的玩耍一下,这些基本可以满足了。
网友评论