由于公司业务需要,开始打造内部的框架和封装组件,利用 CocoaPods 作为依赖管理工具
创建私有的 Spec Repo
在打造私有的组件之前,要首先建立一个私有的 Spec Repo.
Spec Repo 是所有的 Pods 的一个索引,就是一个容器,所有公开的 Pods 都在这个里面.实际只是一个Git仓库r.它的作用就像字典的目录一样,提供 Pods 的地址,版本等等
你可以选择 GitLab 或者 GitHub, Coding 等任何提供托管的地方,去建立一个自己的 Spec Repo。
添加私有 Spec Repo 到本地
在建立好远程的 Repo 之后,把它添加到本地:
1 | pod repo add RepoName SOURCE_URL |
例如:
我要添加一个名为 zenon ,repo地址为 https://github.com/MediatorDemoRepo/PrivatePods
则命令为:
1 | pod repo add zenon https://github.com/MediatorDemoRepo/PrivatePods |
有了远程仓库之后,我们就可以提交组件到自己的 Spec Repo 里了。
移除 repo
对于不想用的 Spec Repo,可以在本地进行移除:
1 | pod repo remove [name] |
例如,移除名为 zenon 的 Spec Repo:
1 | pod repo remove zenon |
提交组件到 Spec Repo
有了远程仓库之后,我们就可以提交组件到 Spec Repo 里 :
1 | pod repo push REPO_NAME SPEC_NAME.podspec |
在此之前,要到使用
1 | pod lib lint |
验证 Spec_Name.podspec 文件后才可以推送到 Spec Repo里。
推送成功后,远程的 Spec Repo 目录应该如下:
1 | ├── Specs |
查看本地 Spec Repo 列表
1 | pod repo list |
组件工程
创建组件工程
CocoaPods 为我们提供了快捷的创建方式,可以直接从 GitHub 上拉一个完整的模版工程下来:
1 | pod lib create YourProjectName |
模版工程创建后,结构如下:
1 | YourProjectName |
在模版工程生成之后,我们所要做的,就是向其中的组件目录 Pod 下添加库文件和资源分别至 Pod/Classes 和 Pod/Assets 目录下。
在放入完成后,再进入到 Example 文件下,执行:
1 | pod update |
每次更改组件目录 Pod 的文件时,都应该执行一次
pod update
来更新
推送组件工程
在运行工程,确定无误后,把它推送到远程仓库。
和 Spec Repo 一样,去GitHub或其他的Git服务提供商那里创建一个私有的仓库.
然后进入到模版本工程的根目录下,进行提交:
1 | //添加记录 |
添加版本号
podspec文件中获取 Git 版本控制的项目还需要 tag 号来对应版本,所以我们要打tag:
1 | git tag -m "push tag" 0.1.0 #版本号根据实际情况填写,要跟podspec文件里的一致 |
填写 podspec 文件
1 | Pod::Spec.new do |s| |
正确填写 podspec 文件十分重要,应该仔细核对 仓库地址,依赖,目录关系等。
测试验证
确认填写无语后,在 YourProjectName 的根目录下面,执行验证命令:
1 | pod lib lint |
如果有信息输出,则根据报错修改。
当看到:
1 | YourProjectName passed validation. |
就说明验证通过了
向私有 Spec Repo 提交
验证通过后,就可以向远程的 Sepc Repo 提交了。
1 | //前面是本地Repo名字 后面是 podspec 名字 |
引用 Pod
使用私有 Spec Repo
对于私有的 Spec Repo, 在使用时,在对应的 Podfile 文件中,添加 source 地址:
1 | source 'URL_TO_REPOSITORY' |
例如:
1 | source 'git@github.com:MediatorDemoRepo/PrivatePods.git' |
删除和更新
删除 Pod Repo
1 | pod repo remove RepoName |
更新 Pod Repo
1 | pod repo update RepoName |