创建私有的Spec Repo
- 新建一个
私有索引库
,可以使用GitHub
- 添加远程索引库时可以先检查已有哪些仓库
pod repo
pod repo remove 私有索引库名
pod repo add 私有索引库名 索引库的git地址
创建组件库
- 新建一个
私有组件库
,可以使用GitHub
- 使用以下命令创建工程模板
pod lib create libName
- 完善
.podspec
文件
- 在模板中的Classes文件夹下添加组件代码(备注:空文件夹会被忽略)
- 执行
pod install
命令,将组件代码和测试工程进行关联
- 编译没问题后提交到远程仓库
# 初始化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
git tag -d tag版本号
# 查看分支
git tag
# 删除远程tag,删除后才可以重新建立
git push origin :tag版本号
项目的哪些文件需要上传到远程仓库
-
pod install
和pod 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文件
pod '框架名称', :podspec => 'path/specName.podspec'
pod install
# 向本地索引库中添加描述文件,同时会将此描述文件自动提交到远程私有索引库中
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-------------------------