使用cocoapods创建私有库
0.注意事项 私有库中的一些注意事项,包括podspec文件的路径配置和其他资源的使用等
1.生成sshkey 请只看第三部分生成和添加sshkey
2.创建一个私有的 Spec仓库
在github上或其他代码管理工具(Gitlab,Coding, Bitbucket)上创建私有仓库,(公司内部使用的话这里推荐大家使用私有的仓库,但是 github 的私有仓库是要收费的 $7/month),我们以在 github 上创建为例:命名为xxSpecs
这个仓库是用来存放我们自己所有的私有库的 spec 文件,然后我们就可以在终端中执行:
pod repo add MyTest10Specs https://github.com/tencheer2017/MyTest10Specs.git
3.创建私有库代码
可以是分割已有的项目中的代码,也可以通过命令创建
3-1.分割已有的项目代码:将已经写好的项目代码全部放到一个已项目名称命名文件夹并分好类,通过命令创建podspec文件
pod spec create xxx
然后根据上面的注意事项进行配置好就可以了。可以通过在项目的podfile文件中添加pod 'MyTest10', :path => '../MyTest'来进行测试。
测试运行,如果没有错误并且达到运行效果,cd到私有库代码文件夹(包含有.podspec文件)执行命令进行本地验证:
pod lib lint
3-2.通过命令行创建新项目:
pod lib create xxxx
接下来会有几个问题,按自己意愿回答就好
然后他会自动执行pod install命令创建项目并生成依赖,并且自动创建了podspec文件,你只需要修改就可以了。
将你需要的已经写好的代码文件和资源文件直接add进项目,关掉项目,执行命令pod install,再重新打开,每次进行修改都要重复此操作(修改项目文件中的代码不需要此操作),而上面的分割已有的代码文件并通过在podfile文件里添加 pod 'MyTest10', :path => '../MyTest10'配置进行本地测试则不用,每次在项目中进行修改的都是直接修改分割的私有库文件夹中的文件。
测试运行,如果没有错误并且达到运行效果,cd到私有库代码文件夹(包含有.podspec文件)执行命令进行本地验证:
pod lib lint
如果验证通过,则往下执行,否则,根据错误提示进行修改直至通过。
4.创建存放代码的私有仓库
同理按照第2步的创建方式创建用来存储代码的私有仓库,命名为你的私有库的名称,记得选择MIT
提交私有库代码到刚刚创建的仓库
$ git add .
$ git commit -s -m "初始化xxx库"
$ git remote add origin https://github.com/tencheer2017/MyTest10.git #添加远端仓库
$ git push origin master #提交到远端仓库
$ git tag -m "first release" "0.1.0" #打上标签,这个很重要,与podspec中的版本号一致,podspec中的版本号可以修改
$ git push --tags #推送tag到远端仓库
注意:先提交后tag
5.向私有Spec仓库提交podspec文件
在Terminal中执行 cd进入项目根目(包含有podspec文件的目录)录然后,执行以下命令:
$ pod repo push MyTest10Specs MyTest10.podspec
这一步如果出现问题验证不通过,可以查看自己的tag是否打成功,是否与podspec中的版本一致。
如果提交成功就可以在Terminal中执行 pod search MyTest10进行查看了。
6.在podfile文件中使用
找不到 MyTest10 ? 额- -!。。。刚才 search 明明可以找到这个依赖库的,为什么现在找不到了呢?
别着急!其实原因是你在 Podfile 中没有指定路径,当你执行 pod install 的时候,CocoaPods 默认只会在 master 下搜索,而我们的 spec 是存在我们私有的 MyTest10Specs 目录下的。所以解决方式很简单,就是引入搜索地址即可,在 Podfile 的顶部添加如下两行代码:
source 'https://github.com/CocoaPods/Specs.git' #官方仓库地址
source ‘https://github.com/tencheer2017/MyTest10Specs.git’ #私有Specs仓库地址
这里必须添加两个地址,默认情况下,你如果不添加 source ,系统会默认使用官方仓库地址,但是当你添加了 source 之后,系统就不会自动搜索官方地址,所以这两句都必须添加,否则其他基于官方的依赖库都不能使用了。
再次执行 pod install ,就可以安装成功了。
7.更新维护podspec
对本地库代码文件进行修改,修改podspec文件
pod lib lint
测试运行无误后,提交,打tag。
将修改后的podspec文件再次提交到私有Specs库。
pod repo push MyTest10Specs MyTest10.podspec
参考: