作者踩了不少坑,本文手把手教你利用CocoaPods创建基于git私有库,避免很多不必要的坑
首先看一下创建CocoaPods私有库流程:
1.创建私有 Spec Repo
2.在代码托管平台创建项目
3.使用 pod lib create 创建本地项目壳
4.配置podspec文件
5.发布私有库,commit,push, tag标记版本,验证,上传。
-----本文已码云为例
1.创建私有 Spec Repo

注意:名称要用 小写, 名称之间不要有空格,假如使用空格在后期终端中上传空格用-代替, 如:mk repo, mk-repo
将所创建的Spec Repo Clone到本地
pod repo add 私有索引库名称 项目地址
pod repo add mkrepo git@gitee.com:yushun/mkrepo.git

执行pod repo list查看repo列表

也可以使用command+shift+G,输入~/.cocoapods/repos进到目录查看
2.在代码托管平台创建私有项目

3.使用 pod lib create创建本地项目壳
将项目从码云clone到本地,然后进入项目文件夹里输入以下命令
pod lib create 项目名称
例:pod lib create TestDome


会自动创建好LICENSE TestDome.podspec Example TestDome 等文件
注:如果用sourceTree注意下目录等级。否则sourceTree不识别不到下一文件夹下文件改动。
创建好后自动打开工程,如下图:

将所要上传的文件放到Classes文件中,然后拖到Development Pods这个文件夹里来更新测试,然后运行程序,确认程序能够成功运行。
注意:一定要确认程序能够重新运行,否则上传的时候会无法通过验证。并且组件中各个文件所需要引入的头文件,一定要引入到各个.m中,切忌不要图省事引入Development Pods/Support Files中的pch中。否则你的程序能够正常运行。但是上传的时候会找不到所引用的文件。

配置podspec文件,注意圈出点,s.version每次commit需自行增加版本数值,s.source 自己的远程项目地址 s.dependency 增加组件所需要依赖,其余地方非必要配置,根据需求自行配置。

4.发布私有库
在终端文件夹首页目录,上传文件夹内所有文件。
$ git add .
$ git commit -m '首次提交'
$ git tag -m"首次上传""0.1.0"
注:版本号要和podspec 里的s.version 所填写的版本号一致
$ git push --tags
$ pod lib lint --allow-warnings 验证本地私有库。
注:如果podspec的依赖包含你自己的私有库。那么验证命令后面要填写你所依赖的那个私有库的连接地址和cocoapods的默认地址
如:$ pod lib lint --sources='ssh://git@git.mistong.com:10022/ios-framework/mistong-repo.git,https://github.com/CocoaPods/Specs' --use-libraries --allow-warnings

$ pod repo push [本地Spec Repo名称][podspec文件路径]
$ pod repo push mkrepo TestDome.podspec --allow-warnings
注:如果前面进行了手动本地验证后面加了 --allow-warnings,那么提交也必须在后面加上--allow-warnings

然后我们可以建个Dome,安装私有库
安装私有库需要在Podfile文件顶部申明一下我们的私有Repo Spec地址,以及pod公共的Repo Spec地址。 再在podfile中通过pod 'TestDome'来申明私有库

网友评论