最近在研究组件化开发,用CocoaPods私有库是一个不错的选择,下面我们来讲一下如何创建私有库。
第一步:我们需要两个Git仓库:一个是私有的Spec Repo Git仓库,作用类似于CocoaPods的官方spec repo 专用来存放podspec; 另一个是私有库源码的Git仓库(可以在Git、码云等代码平台创建);
第二步:创建私有的Spec Repo
$pod repo add PublicModule https://gitee.com/charlesleo/MySpecs.git
然后可以在终端下执行:$pod repo 查看添加的repo
第三步:创建Pod项目工程 "PublicModule"
$pod lib create PublicModule
然后根据问题选择选项:
如图(1),依次回复系统提示的问题。
选择完后会自动生成一个工程文件。
第四步:
接下来向pod文件夹中添加库文件、资源,将代码放入DevelopementPods/PublicModule/Classes中,资源文件放在Assets文件夹中,然后进入Example文件夹执行pod update命令,再次打开工程便可以看到新添加的代码,运行工程,测试组件。
注:需要注意的是每当你向pod中添加新的文件或者以后更新podspec的版本都需要重新执行一遍pod update命令。
测试无误后需要将该项目添加并推送到远端仓库,并编辑podspec文件。
git add .
git commit -m “………”
git remote add origin git@.......... #添加远程仓库
git push origin master #提交到远端仓库
因为podspec文件中获取GIt版本控制的项目还需要tag号,所以提交的代码需要打上一个tag。
git tag -m “……” “0.1.0”
git push origin --tags #推送tag到远端仓库
第五步:
编辑podspec文件,它是一个Ruby的文件。
先看图(2),这个自动生成的podspec文件,
下面对于图(2)中的红框依次解释:
1:s.version 这个是关联我们刚才打的tag的版本号,后面发不完版本,pod 就是通过podspec文件的这个version 找到服务器上面的tag好的代码的。
2:s.description 这个是对该库的描述,描述要尽可能详细,方便别人能看懂这个库的功能。
3:s.homepage 这个是我们这个库的代码仓库地址。我用的是http 格式。
4:s.source 这个依然是我们的代码仓库地址可是ssh格式 也可以是http
5:s.source_file 这个路径里面存放的是我们的代码文件
6:s.resouce_files 这个默认是注释掉的,如果需要添加资源就需要放开这个。
7:s.depency 这个是该库的依赖,比如我们这个库要引用AFNetworking 就是如图(2)所示。
第六步:
编辑完podspec文件以后,可以通过pod spec lint 命令来验证是否有问题。如果验证通过则提示图(3)(PS:图三来自网络)
如果出现passed validation 就说明ok了 可以使用pod repo push 命令来发布到服务器了。
如下命令
pod repo push MySpecs PublicModule.podspec
#前面是本地Repo名字 后面是podspec名字
如果push成功的话,可以使用pod search 命令搜索我们发布的私有库了。
如下命令
pod search PublicModule
如果search 到了我们刚才发布的私有库,那么恭喜你,到这里你的私有库已经制作完成了。