第一: 准备工作
网上大部分资料都是讲的git, 这里就不说git 了, 只讲SVN 的使用,
使用 CocoaPods,及更新 ruby, 开始之前 更新到最新版本.
安装cocoapods-repo-svn插件 , 关于这个插件可以参考: https://github.com/dustywusty/cocoapods-repo-svn
$ sudo cocoapods-repo-svn
$ sudo gem install cocoapods-repo-svn
第二:制作基于 SVN 的私有 spec repo
1 ,先在 svn 服务器上新建一个放 spec 的远程仓库(文件夹) 这里使用 neterp-pub-specrepo(文件名),
这个仓库(neterp-pub-specrepo)不需要创建标准的 trunk、tags、branches 目录,仅仅是放组件的 spec 文件.
2, 使用这个 neterp-pub-specrepo 的svn仓库地址创建一个私有的 repo 仓库
3, 默认会有一个 git 的repo仓库,
查看所有的repo: $ pod repo
添加svn 的repo: $ pod repo-svn add neterp-pub-specrepo http://192.168.2.222/svn/neterp-pub-specrepo
添加git 的repo: $ pod repo add xxx.git
删除一个 repo : $ pod repo remove neterp-pub-specrepo
然后查看repo 会有两个 repo :
第三: 创建一个组件 , 每一个组件都要有一个 .podspec 文件管理
1, 可以手动创建 工程文件 ,并且创建 NetworkTool-Swift.podspec 文件 , spec文件, 网上很多资料描述. 这里就不多说了
$ pod spec create Network-Swift
Pod::Spec.new do |s|
s.name = "NetworkTool-Swift"
s.version = "0.0.1"
s.summary = "NetworkTool-Swift."
s.description = "NetworkTool-Swift 网络请求"
s.homepage = "http://EXAMPLE/NetworkTool-Swift"
s.license = "MIT"
s.author = { "lianchen" => "lianchen551@163.com" }
s.source = { :svn => "https://192.168.3.105:9001/svn/NetworkTool-Swift" }
s.source_files = "NetworkTool-Swift/NetworkTool-Swift/**/*.{swift}"
s.dependency 'Alamofire', '~>4.2.0'
end
2, 使用模板 pod lib create NetworkTool-Swift , 然后基于默认模板进行修改
使用该命令后最回答几个问题,分别是姓名、邮箱(用于 spec 文件中的作者信息)、选择语言(有 Swift 和 ObjC,这里选择 ObjC)、是否需要 demo 工程(这个是需要的,利用这个 demo 进行组件测试)、选择测试库(这里选 None)、do view based testing(这里选 No)
这里暂时不详细说 模板
$ pod lib create NetworkTool-Swift
第四: 把 做好的 NetworkTool-Swift.podspec 文件 提交到 第二步 做好的私有库中(neterp-pub-specrepo) ,
cd 到 NetworkTool-Swift.podspec 所在的目录, 使用终端命令: 把做好的.podspec文件推到私有库,
$ pod repo-svn push neterp-pub-specrepo Network.podspec
第五: 在工程目录下的 Podfile 文件下添加私有 repo 的 svn 地址,才能下载私有库
target 'Login-swift' do
use_frameworks!
# 添加私有 repo 的 svn 地址:
plugin 'cocoapods-repo-svn', :sources => [
'https://192.168.3.105:9001/svn/mobile/neterp-pub-specrepo'
]
pod 'Network-Swift'
end
检查spec 文件有效性:
$ pod repo-svn lint NetworkTool-Swift.podspec
最后: 设置tag: svn设置tag就是copy一份代码, 这里只需要copy需要的文件夹就可以, 不需要copy整个测试工程
注意版本号, 要对应 .podspec文件里的版本号
svn copy https://192.168.3.105:9001/svn/neterp-app/neterp-app-ios/neterp-pub-app-ios/neterp-pub-components/commonModules/Network/trunk/Classes https://192.168.3.105:9001/svn/neterp-app/neterp-app-ios/neterp-pub-app-ios/neterp-pub-components/commonModules/Network/tags/1.0.1 -m "1.0.1"
上面这个svn路径有点长(自己用的): 看下面这个短的
svn copy https://192.168.3.105:9001/svn/Network/trunk/Classes https://192.168.3.105:9001/svn/Network/tags/1.0.1 -m "1.0.1"
第六步: 如果pod install 成功了, 还没有文件, 那就是文件路径有问题,
如果 pod install 失败了, 那就继续踩坑吧!
写得不是很详细, 踩不过的可以留言