组件化第三篇:使用CocoaPods管理自己的框架

创建私有的Spec Repo

  • 新建一个私有索引库,可以使用GitHub、码市GitLab等平台
  • 添加远程索引库时可以先检查已有哪些仓库
pod repo
  • 如果索引库已经存在可以先移除,再添加
pod repo remove 私有索引库名
  • 添加私有索引库
pod repo add 私有索引库名 索引库的git地址

创建组件库

  • 使用以下命令创建工程模板
pod lib create libName
  • 创建过程会会让你填写.podspec文件信息
  • 在模板中的Classes文件夹下添加组件代码(备注:空文件夹会被忽略)
  • 执行pod install命令,将组件代码和测试工程进行关联

通过git来管理私有库代码

# 初始化git库,通过上面的方式就不需要执行此命令了
git init

# 将所有代码文件添加到暂存区中
git add .
# 提交到本地仓库中
git commit -m '注释内容'
# 查看状态
git status
# 首先查看是否有远程仓库
git remote
# 添加远程仓库关联
git remote add origin 远程仓库地址
# 确认远程仓库是否添加成功
git remote
# 默认为master分支
git push origin master
  • 打标签, 并提交到远程仓库,因为podspec文件中必须制定版本号
# 添加Tag
git tag [-a] '1.0.0' [-m '初始版本']
# 查看分支
git tag
# 提交分支到远程仓库
git push --tags
  • 删除Tag
# 删除本地tag
git tag -d tag版本号
# 查看分支
git tag
# 删除远程tag,删除后才可以重新建立
git push origin :tag版本号

项目的哪些文件需要上传到远程仓库

组件化第三篇:使用CocoaPods管理自己的框架_第1张图片
image.png
  • pod installpod update选择
    • pod install库会按照Podfile.lock文件(如果已经存在,不存在就会新建)中的版本号进行指定版本库的获取,而pod update不管Podfile.lock文件是否存在,都更新最新版本的三方库
    • 建议在此命令后加上--verbose --no-repo-update
    • 一般情况下,第一次从共享库把项目下载下来之后,应该使用pod install命令安装,而不是选择pod update,目的是为了保证大家使用的第三方框架版本一致
    • 如果以后大家需要升级第三方框架,那么大家约定好统一再执行一次pod update
    • 建议在编写podfile文件时,明确指定第三方库的版本,格式如下:pod '第三方库名称', '~> 版本号',这样不管使用pod install还是pod update效果都是一致的

上传框架.podspec描述文件

  • 描述文件名和工程名称保持一致
  • 填写.podspec文件中的内容,可以参考别的开源库是如何填写描述信息(比如AFNetworking),也可以到官网中查看
  • 首先cd.podspec文件所在的位置,使用下面的命令本地验证.podspec文件的有效性,不会验证tag
pod lib lint --verbose --allow-warnings
  • 远程验证命令
pod spec lint 
  • 本地测试podspec文件
# 指定podspec文件
pod '框架名称', :podspec => 'path/specName.podspec' 
pod install
  • 提交podspec到远程私有repo中
# 向本地索引库中添加描述文件,同时会将此描述文件自动提交到远程私有索引库中
pod repo push 本地私有索引库名称 specName.podspec --verbose --allow-warnings
  • 框架库依赖设置:s.dependency '依赖库名称,在使用你的框架库时会先安装依赖库
  • 补充:单独创建.podspec文件的命令如下,通过pod lib create libName命令创建的工程已经自动创建了.podspec文件,所以无需单独创建(了解即可)
# specName后面【不加后缀】
pod spec create specName

如何更新框架库

  • 提交更新后的代码
  • 打好tag
  • 更改.podspec文件中的版本号为最新的tag号,相关描述也做一定的修改
  • .podspec文件更新到私有索引库中
  • 执行pod update [--verbose --no-repo-update]

使用组件库

# 搜索自己的库
pod search libName

# 这里可能搜索不到,可以先删除~/Library/Caches/CocoaPods下的search_index.json文件,
# 然后重新搜索就会生新文件,在新文件中就会包含你自己的库了
sudo rm ~/Library/Caches/CocoaPods/search_index.json

# 使用自己的库
# -------------------------Podfile-------------------------
# 最低支持的iOS版本
platform :ios, '8.0'

# 指定的repo镜像源
source 'https://github.com/CocoaPods/Specs.git'
# 远程私有库
source '远程私有索引库的git地址'

# 依赖目标一般为项目名称
target '依赖目标' do
    pod 'myLibName', '~> 1.0.0'     # 自己的私有库
end
# -------------------------Podfile-------------------------

你可能感兴趣的:(组件化第三篇:使用CocoaPods管理自己的框架)