iOS 使用svn创建私有pod库

cocoapods是基于git管理的,如果想要支持svn,首先要安装cocoapods-repo-svn插件,才可以使用repo-svn来代替原来的repo命令,实现svn库的添加和操作

gem install cocoapods-repo-svn

在svn上创建两个目录,一个用来存放cocoapods私有库的索引,一个用来存放私有库的实际代码。

//clone svn目录
svn co svn://xxx.xx.xxx.xxx/xx/xx  本地目录
//创建目录,并上传svn,你也可以用工具实现这一步
mkdir repos
mkdir libs
svn add * --force  
svn commit -m "xxxxx"

目录创建好后,将repos的路径添加cocoapods的本地索引中。

/查看已有repo
pod repo list
pod repo-svn add repos svn: //xxx.xx.xxx.xxx/xx/repos
//添加完后,会多一个本地的repo,名字为repos
pod repo list

在libs中创建私有库

pod lib create xxx_test

配置spec文件,spec文件设置很多,本次没有太详细

s.name         = "xxxx_test" 
s.version      = "0.0.1" //库版本号,等下用
s.summary      = "xxxx" //概要

s.description  = <<-DESC
    yasdofjasidfojasdifjasdflasdfjasdflj       //库的详细描述
                   DESC
s.license      = "MIT (xxxx)"   //遵守的开源协议
s.author             = { "xxxx" => "xxxxx@qq.com" } //作者信息
s.platform     = :ios     //使用平台

//最重要的源码配置,source指向 spec在的目录
s.source       = { :svn => "svn://xxx.xx.xxx.xxx/xx/xxx_libs/xxxx_test", :tag => "#{s.version}" }
//源码文件的目录
s.source_files  = "Sources", "Sources/**/*.{h,m}"
s.exclude_files = "Sources/Exclude"

添加私有库文件后将pod库源码推至svn,执行lint

pod spec lint xxxxx_test.podspec
// 验证通过后将podspec推至索引库
pod repo-svn push xxxx_repos xxxx_test.podspec

成功后在主项目中使用,编辑podfile文件

platform :ios, '8.0'

#inhibit_all_warnings!

# 添加 svn 服务器中私有库 spec 的 repo
plugin 'cocoapods-repo-svn', :sources => [
 'svn://172.30.40.10/PRODUCT/ServicePlatform/SRC/trunk/iOS/repos'
]
# 添加公有库索引
source 'https://github.com/CocoaPods/Specs.git'

target 'MainProject' do
    pod 'xxx_test'
end