基于SVN的Pod库制作流程
1.创建.podspec文件
使用命令
pod spec create 要创建的库名
# 例:pod spec create MyProject
因为是私有仓库,需要单独将.podspec文件单独放入一个文件夹中, 比如文件夹名为Specs, 其目录结构如下:
Specs
├── xxx.podspec
2. 配置 .podspec文件
可根据需要添加或修改相关配置:
Pod::Spec.new do |s|
s.name = 'MyProject'
#注意!!!-----此版本号需要与远程tag版本保持一致
s.version = '1.0.0'
s.summary = 'A short description of MyProject.'
s.description = <<-DESC
#注意!!!------此处配置svn远程库地址
s.source = { :svn => 'http://xxx/MyProject'}
#基于tag版本的话source可以配置如下,如版本格式为1.0.0的如下即可
#若为v1.0.0需在前面添加字符"v",改为tag=> "v#{s.version}"
#s.source = { :svn => 'http://xxx/MyProject', :tag=> "#{s.version}"}
s.ios.deployment_target = '9.0'
#配置项目文件路径
s.source_files = 'MyProject/Classes/**/*'
#是否基于三方Pod依赖,如依赖于AFNetworking
s.dependency 'AFNetworking'
end
然后提交本地代码仓库到SVN远程仓库,包括封装的代码以及包含.podspec的文件夹
3. Pod库上传
- 首先安装SVN
brew install subversion
- 由于HomeBrew镜像在国外速度会很慢,一般将HomeBrew镜像地址替换为中科院的,可查看文章结尾[附录](#6. 附录); 或 前往官网
- 添加SVN的索引仓库之前需要为CocoaPods安装svn插件,之后才可以添加发布仓库
sudo gem install cocoapods-repo-svn
- 配置SVN仓库账号密码
svn ls 你的仓库远程路径
###查看你所在SVN地址的项目, 如: svn ls http://xxx/svn/MyFramework
然后会提示你输入账号密码,配置后你的pod才能下载项目
- 添加pod-svn仓库 (需要进入.podspec所在文件夹下)
pod repo-svn add Spec文件夹名 Spec文件夹远程地址
- 验证.podspec文件(由于我们的.podspec文件和项目不在一个路径,因此使用pod lib lint本地验证会失败,因此这里我们选择远程验证pod spec lint)
pod spec lint --allow-warnings --use-libraries
如果想要本地验证成功,需要将.podspec文件放在项目代码同级文件夹中,列如我们的项目文件是MyProject, 则目录应为:
MyProject
├── MyProject
│ ├── Assets
│ └── Classes
│ ├── MyProject.h
│ └── MyProject.m
├── MyProject.podspec
├── LICENSE
├── README.md
然后执行以下命令即可
pod lib lint --allow-warnings --use-libraries
- 验证成功后发布pod-svn仓库:
pod repo-svn push 库名 文件名.podspec
这里就已经发布成功了,后续如需要修改或删除Pod私有库可以使用用下列命令:
更新pod-svn仓库:pod repo-svn update Spec文件名
删除pod-svn仓库:pod repo-svn remove Spec文件名
至此基于SVN的Pod库就上传完毕,但供别人使用的话还需要按下面说明中做配置
4. Pod install 之前所需配置
项目Podfile文件中需要添加如下配置:
##########Podfile#########
# 私有库都需要添加此地址
source 'https://github.com/CocoaPods/Specs.git'
# 下载SVN上的Pod库需要添加如下SVN插件配置
plugin 'cocoapods-repo-svn', :sources => [
'http://你的.podspec文件所在文件夹地址'
如:'http://xxx/XXXSpecs'
]
##########Podfile#########
5. 总结
创建基于SVN的Pod库相比之下还是比基于Git的繁琐许多,主要原因就是Mac系统上移除了对于SVN的相关支持,Cocoapods也是,都需要单独下载支持SVN的终端插件,导致整个过程相对复杂一些,望此篇可以帮助到需要的人
6. 附录
国内HomeBrew一键安装:
/bin/bash -c "$(curl -fsSL https://gitee.com/wejectchan/brew/raw/master/install.sh)"
国内HomeBrew一键卸载:
/bin/bash -c "$(curl -fsSL https://gitee.com/wejectchan/brew/raw/master/uninstall.sh)"