pod repo-svn add SpecRepo http://10.211.55.3/svn/SpecRepo
pod repo add xxx git地址
創建了私有 SpecRepo,其本地.cocoapods/repos
文件夾目錄以下
ios
使用pod repo
命令查看 repo 以下
git
pod lib create CRProtocolManager
命令來下載帶有默認模板的庫,以後基於默認模板進行修改
pod install
來更新工程的 CRProtocolManager 核心代碼
pod 'CRProtocolManager', :path => '../'
,指向的外層文件夾下的 CRProtocolManager.podspec 文件,所以能夠這樣添加刪除文件後使用pod install
來更新核心代碼到工程裏s.version = '1.0'
s.source = {:svn =>'http://10.211.55.3/svn/CRProtocolManager', :tag => s.version.to_s }
,原來 s.source 是 git 地址,這裏改成 svn 地址,指向 svn 代碼倉庫。# 示例 Pod::Spec.new do |s| s.name = 'CRProtocolManager' s.version = '1.0' s.summary = 'CRProtocolManager.' s.description = <<-DESC CRProtocolManager xxxx DESC s.homepage = 'http://www.baidu.com' s.license = { :type => 'MIT', :file => 'LICENSE' } s.author = { 'HOWIE-CH' => 'zh200742zh@126.com' } s.source = {:svn =>'http://10.211.55.3/svn/CRProtocolManager', :tag => s.version.to_s } s.ios.deployment_target = '8.0' s.source_files = 'CRProtocolManager/Classes/**/*' # s.resource_bundles = { # 'CRProtocolManager' => ['CRProtocolManager/Assets/*.png'] # } # s.frameworks = 'UIKit', 'MapKit' # s.dependency 'AFNetworking', '~> 2.3' end
pod repo-svn push SpecRepo CRProtocolManager.podspec
pod repo-svn lint CRProtocolManager.podspec
pod init
建立 Podfile 文件platform :ios, '8.0' target 'test' do plugin 'cocoapods-repo-svn', :sources => [ 'http://10.211.55.3/svn/SpecRepo' # 添加 svn 服務器中私有庫 spec 的 repo ] use_frameworks! pod 'CRProtocolManager' # 本地 svn 私有庫 pod 'AFNetworking' # 可直接 pod 公開第三方庫 end
- git 的話要同時標明私有 repo 地址和默認 repo 地址(以 source 'git地址' 形式)
pod install
便可安裝 CRProtocolManager 私有組件pod install
報錯找不到組件,可以使用pod repo remove SpecRepo
後從新添加pod repo-svn add SpecRepo http://10.211.55.3/svn/SpecRepo
,而後pod repo-svn update SpecRepo
,若還沒解決多是 ruby、CocoaPods 版本不是最新的緣由,建議重裝後操做。pod search CRProtocolManager
搜索不到,可到/Users/HOWIE-CH/Library/Caches/CocoaPods
下刪除 search_index.json 文件後重試。其餘組件和第三步同樣進行操做,最後 svn 服務器截圖和 SpecRepo 文件夾截圖以下
github
# 須要的依賴私有庫 s.dependency 'CRProtocolManager' s.dependency 'CRConfirmOrderServiceProtocol' s.dependency 'CRGoodsDetailServiceProtocol' # 依賴公有庫 ,可添加依賴的公有庫 s.dependency 'SDWebImage'
use_frameworks! target 'CRGoodsDetail_Example' do # 添加私有 repo 的 svn 地址 plugin 'cocoapods-repo-svn', :sources => [ 'http://10.211.55.3/svn/SpecRepo' ] pod 'CRGoodsDetail', :path => '../' target 'CRGoodsDetail_Tests' do inherit! :search_paths end end
CRGoodsDetail 核心代碼中分文件夾
json
# subspec 及各自的依賴私有庫 s.subspec 'Module' do |m| m.source_files = 'CRGoodsDetail/Classes/Module/*' # 依賴私有庫 m.dependency 'CRConfirmOrderServiceProtocol' # 依賴公有庫 m.dependency 'SDWebImage' end s.subspec 'Provider' do |p| p.source_files = 'CRGoodsDetail/Classes/Provider/*' p.dependency 'CRGoodsDetailServiceProtocol' end # 公用的依賴私有庫 s.dependency 'CRProtocolManager'
使用 subspec 後 pod search 效果
xcode
# pod 'CRGoodsDetail', :subspecs =>['Module'] #只加載本地 svn 私有庫的某個 subspec pod 'CRGoodsDetail' # 完整的 svn 私有庫
s.resource_bundles = { 'CRGoodsDetail' => ['CRGoodsDetail/Assets/*'] }
svn checkout xxx
一次,讓電腦記住用戶名、密碼