
一、在代码管理网页上创建私有Pod源仓库,如下图

二、在代码管理网页上创建私有Pod源,如下图

三、创建需要共享的工程
1、在Terminal
中执行cd
进入要创建项目的目录然后 执行以下命令
pod lib create 工程名
2、按模版提示信息创建模版,如下

3、自动生成的模版工程文件及说明

4、创建属于自己的代码

四、配置 .podspec 后缀文件
s.name : 项目名
s.version : 版本号(需跟后面打 Tag 的值相等)
s.homepage : 项目主页(请注意,这里的地址跟git仓库地址有一定差别,请同学们看清截图示例并区分)
s.license : 开源协议(这里我们选择 MIT )
s.source : Git 仓库地址(第二步所复制的仓库地址)
s.ios.deployment_target : 项目最低支持版本
s.source_files : 具体去那个目录下下载特定共享代码(注意:这里的地址与 .podspec 文件同级目录开始,示例:PrivateLib/Classes/** /*表示如下目录下的所有文件
s.frameworks : 项目所依赖的系统库(如果需要)
s.dependency : 项目所依赖的第三方库(如果需要)
五、验证下 .podspec 文件的格式正确性,确保没有cocoapod错误和警告
在.podspec 同级目录下,在终端输入pod lib lint --sources='https://github.com/CocoaPods/Specs.git'
,如下图

如果出现include of non-modular header inside framework module错误的话,再pod lib lint后加--use-libraries,即
pod lib lint --sources='https://github.com/CocoaPods/Specs.git' --user-libraries
`
如果由于警告验证不通过的话,再加--allow-warnings
六、推送本地代码到远程私有Pod源
1、执行如下命令,关联远程库地址
git remote add origin https://gitee.com/RichieQuan/PrivateLib.git
2、执行如下命令,推送到远程库
git push origin master
第一次执行的话,由于未先pull
下来,会报如下错误

3、执行如下命令,拉取远程代码,会遇到冲突情况
git pull origin master --allow-unrelated-histories

4、执行如下命令,打开冲突比对界面
git mergetool

5、解决冲突完成后,执行如下命令提交到远程
git add .
git commit -m 'PrivateLib commit'
git push origin master
6、打tag
并验证
未打标签的时候,输入pod spec lint
,会提示如下错误

打上标签并提交后,再验证就正确咯。如下

七、关联第一步创建的私有仓库
1、先进入到本地仓库,使用如下命令
cd ~/.cocoapods/repos
2、执行如下命令,关联本地创建的仓库
pod repo add PrivatePodspec 第一步创建的私有仓库git地址
3、向私有的 PrivatePodspec 远程仓库中提交 .podspec,如下

4、提交成功后,我们可以到本地仓库看到确实有PrivateLib私有库0.1.0版本,如下

同时,使用
pod search PrivateLib
也可以搜索到(仅公有仓库才能搜索到)
八、使用私有库
Podfile文件中加入私有库地址
source 私有库git地址
source 'https://github.com/CocoaPods/Specs.git'
(如果有依赖第三方开源库要加这句话)
pod 私有库项目名
或者pod 私有库项目名/子模块
(如果私库有子模块且只想引入子模块代码)
如果pod install,提示库不存在的话,执行下pod repo update更新下本地仓库配置,再执行pod install或者直接执行pod update(不推荐,有可能更新其他pod库版本)即可
八、私有仓库发布更新
1、私有库代码提交到远程仓库
2、创建新tag并提交到远程仓库
git tag 新版本号
git push --tags
3、输入下面代码验证
pod spec lint
4、验证通过后执行
pod repo push PrivatePodspec PrivateLib.podspec
5、如果提示no clean
cd ~/.cocoapods/repos/PrivatePodspec/PrivateLib
git clean -f
cd PrivateLib.podspec所在目录
再执行
pod repo push PrivatePodspec PrivateLib.podspec
即可
网友评论