Cocoapods创建基于SVN的私有库podspec

第一: 准备工作
网上大部分资料都是讲的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 :

《Cocoapods创建基于SVN的私有库podspec》 Snip20170922_15.png

第三: 创建一个组件 , 每一个组件都要有一个 .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 失败了, 那就继续踩坑吧!

写得不是很详细, 踩不过的可以留言

本文参考: http://www.qingpingshan.com/rjbc/ios/295448.html

    原文作者:CoderChan
    原文地址: https://www.jianshu.com/p/781700380af2
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞