CocoaPods私有庫的建立
一. 建立版本庫
首先,我們要建立一個像master
一樣的存放版本描述檔案的Git倉庫,因為是私人Git倉庫,我選擇了OSChina來建立自己的石油倉庫(因為是免費的?),當然你也可以選擇在GitHub上建立**($7/month)**。
接下來,我將以OSChina為例來建立自己的私有庫
- 建立版本描述倉庫
版本庫名字為SYXRepo
,創庫狀態要設為私有
。
開啟終端,將這個遠端私有庫新增到本地。
$ pod repo add SYXRepo https://gitee.com/Yun_S/SYXRepo.git
複製程式碼
開啟資料夾 ~/.cocoapods/repos
,你可以發現repos
資料夾下增加了一個SYXRepo
的庫。
二. 建立程式碼庫
現在,我們回到OSChina來建立私人程式碼庫。
接下來,將倉庫克隆到本地,新增我們的程式碼檔案
,倉庫名.podspec
描述檔案,如下圖所示:
.podspec
檔案是我們程式碼庫的pod描述檔案,可以通過pod指令建立空白模板:
$ pod spec create c
複製程式碼
或者直接拷貝下面的模板進行修改(強烈建議)
Pod::Spec.new do |s|
s.name = "PrivatePodsDemo1" # 專案名稱
s.version = "1.0.0" # 版本號 與 你倉庫的 標籤號 對應
s.summary = "私人pod程式碼" # 專案簡介
s.license = "MIT" # 開源證書
# s.license = { :type => "MIT", :file => "FILE_LICENSE" }
s.homepage = "https://gitee.com/Yun_S" # 倉庫的主頁
s.source = { :git => "https://gitee.com/Yun_S/PrivatePodsDemo1.git", :tag => "#{s.version}" }#你的倉庫地址,不能用SSH地址
s.source_files = "PrivatePodsDemo1/classes/*.{h,m}" # 你程式碼的位置, PrivatePodsDemo1/*.{h,m} 表示 PrivatePodsDemo1 資料夾下所有的.h和.m檔案
s.requires_arc = true # 是否啟用ARC
s.platform = :ios, "8.0" #平臺及支援的最低版本
# s.frameworks = "UIKit", "Foundation" #支援的框架
# s.dependency "JSONKit", "~> 1.4" # 依賴庫
# User
s.author = { "SYX" => "872934694@qq.com" } # 作者資訊
# s.social_media_url = "http://twitter.com/xxx" # 個人主頁
end
複製程式碼
然後,開始驗證我們的倉庫配置是否正確,按照錯誤提示來修改我們的配置。
$ pod lib lint
複製程式碼
如果出現錯誤警告,需要新增 --private
或者 --allow-warnings
,就能驗證通過
$ pod lib lint --private
複製程式碼
驗證成功後會出現以下輸出:
-> PrivatePodsDemo1 (1.0.0)
PrivatePodsDemo1 passed validation.
複製程式碼
三. 將版本描述檔案推送到版本庫
將專案打上標籤推送到遠端倉庫,標籤號
和版本號
對都應該是 1.0.0
最後,要將我們的程式碼倉庫的描述檔案 push 到我們的版本倉庫中
$ pod repo push SYXRepo PrivatePodsDemo1.podspec
複製程式碼
這時會對遠端程式碼倉庫進行驗證,如果成功了,我們就會在 ~/.cocoapods/repos/SYXRepo
中發現新增的倉庫描述資訊了
如果出現了以下錯誤
[!] The repo `SYXRepo` at `../.cocoapods/repos/SYXRepo` is not clean
複製程式碼
更新下我們的版本庫
$ pod repo update SYXRepo
複製程式碼
再繼續上傳,即可。
pod repo push MyRepo PrivatePodsDemo1.podspec
的過程就是
- 驗證 PrivatePodsDemo1.podspec 檔案
- 拉取遠端版本庫 SYXRepo
- 新增 PrivatePodsDemo1.podspec 到版本庫中
新增完成後我們就可以在pod中搜尋
$ pod search PrivatePodsDemo1
複製程式碼
-> PrivatePodsDemo1 (1.0.0)
私人pod程式碼測試
pod 'PrivatePodsDemo1', '~> 1.0.0'
- Homepage: https://gitee.com/Yun_S
- Source: https://gitee.com/Yun_S/PrivatePodsDemo1.git
- Versions: 1.0.0 [SYXRepo repo]
複製程式碼
四. 私有Pod庫的使用
在使用私人pod庫的時候,我們需要在Podflie
檔案中加入以下語句,指明私人的版本庫地址。
(**注意:**要是版本庫的地址,而不是程式碼庫的地址)
source ‘https://gitee.com/Yun_S/SYXRepo.git’
複製程式碼
如果你還使用了公有的Pod庫,需要把公有庫地址也帶上
source 'https://github.com/CocoaPods/Specs.git'
複製程式碼
最終,我們的Podflie
檔案變成以下的樣子
source ‘https://github.com/CocoaPods/Specs.git’
source ‘https://gitee.com/Yun_S/SYXRepo.git’
platform :ios, '8.0'
target ‘MyPodTest’ do
pod ‘PrivatePodsDemo1’ #我們的私有庫
end
複製程式碼
五. 測試
$ pod install
複製程式碼
載入完成可以看到程式碼已經整合到我們的專案中了