我們?cè)陂_(kāi)發(fā)過(guò)程中經(jīng)常會(huì)需要依賴第三方庫(kù)或我們自己的私有庫(kù)(本地庫(kù))为严,關(guān)于依賴第三方庫(kù)和Cocoapods的使用這里就不做贅述了,大家可以看唐巧的《用CocoaPods做iOS程序的依賴管理》這篇文章腻异,我這里只記錄我使用CocoaPods和svn共同管理私有庫(kù)的過(guò)程夷野,svn管理工具我使用的是Cornerstone征堪。
接下來(lái)我將描述如何使用CocoaPods和svn共同管理依賴庫(kù)
操作說(shuō)明
-
創(chuàng)建一個(gè)框架命名為QHLUtil管毙,再添加一些自己需要的類到QHLUtil中,編譯順利完成后米酬,使用Cornerstone將QHLUtil項(xiàng)目導(dǎo)入已創(chuàng)建的文件目錄下沛豌,結(jié)果如圖:
2017-03-18-1.png 打開(kāi)終端,執(zhí)行
cd ~/Documents/ProjectManagerTest/QHLUtil
~/Documents/ProjectManagerTest/QHLUtil這是我創(chuàng)建項(xiàng)目的路徑赃额,根據(jù)你創(chuàng)建項(xiàng)目的路徑進(jìn)行修改創(chuàng)建項(xiàng)目的podspec文件琼懊,執(zhí)行
pod spec create QHLUtil
創(chuàng)建成功后終端顯示Specification created at QHLUtil.podspec-
編輯QHLUtil.podspec,執(zhí)行
vim QHLUtil.podspec
編輯相關(guān)信息爬早,我信息內(nèi)容如下:
Pod::Spec.new do |s|
s.name = "QHLUtil"
s.version = "0.0.1"
s.summary = "工具類"
s.description = <<-DESC
"工具類"
DESCs.homepage = "https://lkxiluo.github.io/" s.license = "MIT" s.author = { "Qianhan" => "https://lkxiluo.github.io/" } s.platform = :ios, "8.0" s.ios.deployment_target = "8.0" s.source = { :svn => "svn://192.168.6.5:9600/wzhouhui/app/ios/ProjectManagerTest/QHLUtil", :tag => "#{s.version}" } s.source_files = "QHLUtil", "QHLUtil/**/*.{h,m}" s.exclude_files = "QHLUtil/Exclude" s.frameworks = "UIKit", "Foundation"
關(guān)于.podspec文件內(nèi)容各個(gè)字段的代表的意思這里就不描述了哼丈,大家可以看這篇文章
保存退出,將QHLUtil.podspec文件同步到svn上
創(chuàng)建測(cè)試項(xiàng)目ProjectManagerDemo筛严,執(zhí)行
cd /Users/karl.luo/Documents/ProjectManagerTest/ProjectManagerDemo
到你創(chuàng)建的項(xiàng)目文件目錄下醉旦,這里的命令根據(jù)你的項(xiàng)目路徑做改變-
創(chuàng)建Podfile文件,執(zhí)行
vim Podfile
編輯Podfile文件內(nèi)容如下
platform:ios, '8.0'target:ProjectManagerDemo do pod 'QHLUtil', :svn=>'svn://192.168.6.5:9600/wzhouhui/app/ios/ProjectManagerTest/QHLUtil' end
svn://192.168.6.5:9600/wzhouhui/app/ios/ProjectManagerTest/QHLUtil為你私有庫(kù)文件目錄
- 建立依賴關(guān)系,這里有兩種情況
a. 直接執(zhí)行命令
pod install
完成依賴關(guān)聯(lián)
b. 根據(jù)版本進(jìn)行管理
進(jìn)入QHLUtil文件目錄车胡,創(chuàng)建名為tags的文件檬输,如圖:
2017-03-18-2.png
將tags文件夾同步到svn,打開(kāi)Cornerstone匈棘,右擊QHLUtil項(xiàng)目丧慈,創(chuàng)建改項(xiàng)目的一個(gè)版本tag,如圖:
2017-03-18-3.png
填寫tag的信息
2017-03-18-4.png
Tag信息說(shuō)明:
Tag As為版本號(hào)主卫,將與QHLUtil.podspec文件中的s.version= "0.0.1"相同
Where為保存路徑逃默,保存在剛才創(chuàng)建的tags文件夾下,此目錄要正確簇搅,因?yàn)殛P(guān)聯(lián)時(shí)獲取資源就是根據(jù)s.source= { :svn => "svn://192.168.6.5:9600/wzhouhui/app/ios/ProjectManagerTest/QHLUtil", :tag => "#{s.version}" }索引的完域,如果錯(cuò)了見(jiàn)找不到資源
Revision為svn上代碼的提交版本
點(diǎn)擊“Create Tag”創(chuàng)建完成,此時(shí)瘩将,Cornerstone中項(xiàng)目的目錄結(jié)構(gòu)將如圖所示:
2017-03-18-5.png
編輯QHLUtil.podspec文件(步驟同上),將s.version值設(shè)置為剛才創(chuàng)建的Tag As號(hào)吟税,當(dāng)有多個(gè)tag時(shí),設(shè)置為你要選擇的版本號(hào)姿现,保存退出編輯
執(zhí)行
pod spec lint QHLUtil.podspec --allow-warnings
檢查信息是否有錯(cuò)肠仪,如果成功,來(lái)到ProjectManagerDemo目錄备典,執(zhí)行
pod install
- 更新新庫(kù)藤韵,需要更新依賴庫(kù)時(shí),編輯QHLUtil.podspec文件中s.version設(shè)置為要依賴的庫(kù)熊经,執(zhí)行
pod update