CocoaPods私有庫的建立

雲本尊發表於2018-05-21

CocoaPods私有庫的建立

一. 建立版本庫 首先,我們要建立一個像master一樣的存放版本描述檔案的Git倉庫,因為是私人Git倉庫,我選擇了OSChina來建立自己的石油倉庫(因為是免費的?),當然你也可以選擇在GitHub上建立**($7/month)**。

接下來,我將以OSChina為例來建立自己的私有庫

  1. 建立版本描述倉庫
    CocoaPods私有庫的建立

版本庫名字為SYXRepo,創庫狀態要設為私有

開啟終端,將這個遠端私有庫新增到本地。

$ pod repo add SYXRepo https://gitee.com/Yun_S/SYXRepo.git
複製程式碼

開啟資料夾 ~/.cocoapods/repos,你可以發現repos資料夾下增加了一個SYXRepo的庫。

CocoaPods私有庫的建立

二. 建立程式碼庫

現在,我們回到OSChina來建立私人程式碼庫。

接下來,將倉庫克隆到本地,新增我們的程式碼檔案倉庫名.podspec描述檔案,如下圖所示:

CocoaPods私有庫的建立

.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私有庫的建立
這時會對遠端程式碼倉庫進行驗證,如果成功了,我們就會在 ~/.cocoapods/repos/SYXRepo中發現新增的倉庫描述資訊了

CocoaPods私有庫的建立

如果出現了以下錯誤

[!] The repo `SYXRepo` at `../.cocoapods/repos/SYXRepo` is not clean
複製程式碼

更新下我們的版本庫

$ pod repo update SYXRepo
複製程式碼

再繼續上傳,即可。 pod repo push MyRepo PrivatePodsDemo1.podspec 的過程就是

  1. 驗證 PrivatePodsDemo1.podspec 檔案
  2. 拉取遠端版本庫 SYXRepo
  3. 新增 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
複製程式碼

載入完成可以看到程式碼已經整合到我們的專案中了

CocoaPods私有庫的建立

相關文章