iOS 组件化-Cocoapods创建私有库

1,723 阅读2分钟

概述

通过Cocoapods创建私有库是实现项目组建化的重要手段之一,下面这边文章,来了解如何通过Cocoapods实操来一步步创建私有库

创建私有库

pod lib create

  • 新建一个目录,在该目录执行pod lib create QHFirstComponents,其中QHFirstComponents是我们要生成的组件名字,回车,会出现下面的选项

图片1.png

  • 根据自己的的要求选择即可
  • 操作完成之后会自动生成下面的项目

图片2.png

安装cocoapods项目

进入刚才生成的QHFirstComponents->Example目录,执行 pod install --no-repo-update命令

添加代码

进入QHFirstComponents->QHFirstComponents->Classes,删除ReplaceMe.m,添加如下文件: 图片3.png 图片4.png

新建git仓库

在gitee上新建仓库 图片6.png 图片7.png

配置.podspec文件

打开QHFirstComponents->QHFirstComponents.podspec文件 图片8.png

  • s.name:组件名称
  • s.version:组件版本
  • s.summary:组件介绍,需要修改,不让会报错
  • s.homepage:可以填随便填一个地址
  • s.source:填写上面创建的参考地址

pod验证

  • 再次进入Example目录执行pod update --no-repo-update,运行项目成功
  • 回到QHFirstComponents目录,执行pod lib lint进行验证,如下图,出现验证成功即可

图片9.png

私有库发布

QHFirstComponents目录执行如下命令

  • git remote add origin 仓库地址
  • git add .
  • git commit -a -m "first commit"
  • git pull origin master --allow-unrelated-histories
# --allow-unrelated-histories
# git pull origin maste会失败 ,提示:fatal: refusing to merge unrelated histories
# 原因是远程仓库origin上的分支master和本地分支master被Git认为是不同的仓库,所以不能直接合并,需要添加 --allow-unrelated-histories

但是执行这个命令,依然会报错,原因是在readmeLICENSE文件有冲突

图片10.png 解决冲突,继续执行

  • git add .
  • git commit -a -m "my commit"
  • git push origin master
  • git tag 0.1.0
  • git push origin 0.1.0

到这里就完成了git的提交

检验远端.podspec文件格式

QHFirstComponents目录执行:pod spec lint,如下图验证成功 图片11.png

发布

  • 创建本地Sepc管理库,在QHFirstComponents目录执行pod repo add QHFirstComponents 仓库地址 命令。
  • 创建成功后会在~/.cocoapods/repos生成本地的 QHFirstComponents管理库

图片12.png

  • 执行pod repo push QHFirstComponents QHFirstComponents.podspec发布,如下图,发布成功
# QHFirstComponents是刚才上面添加的管理库名字 
# QHFirstComponents.podspec是QHFirstComponents项目里面后缀为podspec的文件名

图片13.png

在新项目使用私有库

新建项目在podfile添加如下命令:

图片14.png pod install,在新项目引用QHTest

图15.png

打印配置成功

图片16.png

到此,完整的操作流程就结束了。