CocoaPods除了可以做第三方開源庫的管理它匕。其實還可以做私有庫的管理。
比如:
第一:我們公司自己的庫窖认,可以共享給公司很多團隊使用豫柬,如果直接copy會很麻煩,所以我們可以把他托管到自己的git服務(wù)器上扑浸,然后做成私有的庫pod 進相應(yīng)的工程項目里面使用烧给。
第二:如果現(xiàn)有的第三方庫滿足不了我們現(xiàn)在的需求,我們可以做適當(dāng)?shù)男薷暮仍耄?dāng)時開這個項目的開發(fā)者不一定合并我們的代碼创夜,所以呢,我們也可以做成私有的庫托管到公司自己的服務(wù)器上維護仙逻。
下面大致介紹下我自己修改的JSONModel 做成私有庫維護在自己的git 服務(wù)器上驰吓,然后pod進現(xiàn)有的工程使用的一個步驟吧涧尿。
第一步:假如自己的代碼托管在git服務(wù)器上,我們先到當(dāng)前工程目錄下創(chuàng)建一個Podspec索引文件檬贰,然后放到一些編輯工具編輯
pod spec create JSONModel?
Pod::Spec.new do |s|
s.name? ? ? ? = "JSONModel"
s.version? ? ? = "1.0.2"
s.summary? ? ? = "JSONModel 做了私有的修改"
s.homepage? ? = "http://10.1.64.25/Servens/JSONModel.git"
s.license? ? ? = 'MIT'
s.author? ? ? = { "sevens" => "qiqi@qiqi.com" }
s.source? ? ? = { :git => "http://10.1.64.25/Servens/JSONModel.git", :tag => "1.0.2" }
s.ios.deployment_target = '6.0'
s.osx.deployment_target = '10.7'
s.watchos.deployment_target = '2.0'
s.tvos.deployment_target = '9.0'
s.source_files = 'JSONModel/*.{m,h}'
s.public_header_files = 'JSONModel/*.h'
s.requires_arc = true
end
參數(shù)名字解釋:
s.name聲明庫的名稱
s.summary對這個庫的簡短說明介紹
s.version當(dāng)前庫的版本
s.homepage聲明庫的主頁
s.license所采用的授權(quán)版本
s.author庫的作者
s.platform庫運行的平臺和系統(tǒng)的最低版本
s.source庫的倉庫地址以及版本號或者committed等
s.source_files聲明庫的源代碼的位置姑廉,庫的真正路徑(一般是相對路徑)所以這個地方不能填錯。這個目錄下的文件都會進行編譯翁涤。
s.resources存放我們不想?yún)⑴c編譯的資源文件
s.frameworks聲明了庫所依賴的系統(tǒng)核心庫
s.dependency我們開發(fā)的庫中也可能還依賴第三方庫桥言,例如JSONKit,那么葵礼,就可以做如下聲明:s.dependency "JSONKit", "~> 1.4",如果有多個就寫多個
驗證文件有效性
pod spec lint JSONModel.podspec --verbose? --allow-warnings
注意:
加上這個verbose參數(shù)可以把一些詳細(xì)信息打印出來方便查看錯誤信息号阿。如果有錯誤按照提示修改。警告雖然也可以忽略鸳粉,但是也要當(dāng)作錯誤處理扔涧。
注意配置文件里面的版本號要和自己代碼的標(biāo)簽版本對應(yīng)
s.source_files 文件路徑是相對于podspec的路徑
第二步:創(chuàng)建一個工程在git上保存我們的podspec文件
給cocoapods添加私有repo
pod repo add JSONModelPod?https://192.168.2.2/JSONModel.git
pod repo list
用上述命令可以查看自己的剛才創(chuàng)建的本地倉庫,除了master 和 private 我們單獨創(chuàng)建一個文件夾因為我們是第三方庫做修改的private里面已經(jīng)存在有可能届谈,所以這樣不會沖突枯夜。
把配置文件添加到本地并推送到服務(wù)器上
pod repo push ~/JSONModel/JSONModel.podspec --allow-warnings
可以去JSONModel文件夾里面查看有一個當(dāng)前版本,如果以后有新的版本艰山,會有多個文件夾里面有相應(yīng)的配置文件湖雹。
第三步:怎么把自己的私有庫引入到當(dāng)前工程里面使用。
# Uncomment this line to define a global platform for your project
source'http://10.1.2.5/Servens/JSONModelConfigurationFile.git'
source'https://github.com/CocoaPods/Specs.git'
platform :ios,'8.0'
inhibit_all_warnings!
target'CocoapodsTest'do
pod'AFNetworking'
pod'JSONModel','1.0.2'
end
注意添加source'倉庫地址' 自己的在前面曙搬,官方的在后面摔吏,可以添加多個自己的倉庫路徑
第四:私有庫的維護怎么個步驟呢
1:自己庫更新打一個新的tag 和 配置文件里面的版本號對應(yīng)起來
2 :pod spec lint JSONModel.podspec --verbose? --allow-warnings ?驗證有效性
3:pod repo push JSONModel ~/JSONModel/JSONModel.podspec --allow-warnings 推送到服務(wù)器