第一: 準(zhǔn)備工作
網(wǎng)上大部分資料都是講的git, 這里就不說git 了, 只講SVN 的使用,
使用 CocoaPods,及更新 ruby, 開始之前 更新到最新版本.
安裝cocoapods-repo-svn插件 , 關(guān)于這個插件可以參考: https://github.com/dustywusty/cocoapods-repo-svn
$ sudo cocoapods-repo-svn
$ sudo gem install cocoapods-repo-svn
第二:制作基于 SVN 的私有 spec repo
1 ,先在 svn 服務(wù)器上新建一個放 spec 的遠(yuǎn)程倉庫(文件夾) 這里使用 neterp-pub-specrepo(文件名),
這個倉庫(neterp-pub-specrepo)不需要創(chuàng)建標(biāo)準(zhǔn)的 trunk、tags冈涧、branches 目錄套蒂,僅僅是放組件的 spec 文件.
2, 使用這個 neterp-pub-specrepo 的svn倉庫地址創(chuàng)建一個私有的 repo 倉庫
3, 默認(rèn)會有一個 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 :
第三: 創(chuàng)建一個組件 , 每一個組件都要有一個 .podspec 文件管理
1, 可以手動創(chuàng)建 工程文件 ,并且創(chuàng)建 NetworkTool-Swift.podspec 文件 , spec文件, 網(wǎng)上很多資料描述. 這里就不多說了
$ 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 網(wǎng)絡(luò)請求"
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 , 然后基于默認(rèn)模板進(jìn)行修改
使用該命令后最回答幾個問題,分別是姓名验夯、郵箱(用于 spec 文件中的作者信息)、選擇語言(有 Swift 和 ObjC摔刁,這里選擇 ObjC)挥转、是否需要 demo 工程(這個是需要的,利用這個 demo 進(jìn)行組件測試)共屈、選擇測試庫(這里選 None)绑谣、do view based testing(這里選 No)
這里暫時不詳細(xì)說 模板
$ 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
最后: 設(shè)置tag: svn設(shè)置tag就是copy一份代碼, 這里只需要copy需要的文件夾就可以, 不需要copy整個測試工程
注意版本號, 要對應(yīng) .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 失敗了, 那就繼續(xù)踩坑吧!
寫得不是很詳細(xì), 踩不過的可以留言