1. 程式人生 > >iOS元件化開發之——使用Cocoapods打私有的Pod庫

iOS元件化開發之——使用Cocoapods打私有的Pod庫

隨著專案和業務的發展,專案中會有很多基礎功能模組和通用業務模組可以抽象出來獨立成元件,這樣可以為我們以後在開發新專案的時候提供共用基礎元件,進行元件化程式設計,不需要重新造輪子,提高開發效率。因此我們就需要一個方案來合理的管理公共的元件。

Spec Repo(配置倉庫)的概念

CocoaPods對於一名iOS開發來說再熟悉不過了,它的工作原理就是在GitHub上面有個Spec Repo,它裡面包括成千上萬的字尾名為.podspec的檔案。然後我們在專案整合的時候可以通過CocoaPods的Spec Repo去找到我們需要的開源專案,在.podspec檔案中有具體的原始碼地址,這個下面會有介紹。

按照上面Spec Repo的理解,我們如果能自己建立一個類似CocoaPods的Spec Repo,然後把我們公共元件的.podspec檔案放在裡面,然後整合的時候讓CocoaPods幫我們整合那我們就能達到目的,就可以建立私有pod庫了。

一般專案經理都會把程式碼倉庫和配置倉庫都建好,這時候我們只需要把Spec Repo 加到本地就行了。(注意:需要管理員將你的賬號加到裡邊,有訪問許可權並且有修改許可權)。

一、新增'本地的私有倉庫'檔案 

1、使用下面的命令就可以在本地生成配置檔案的倉庫,建議這個本地的名字也和遠端的一致,這樣便於區分和後期的維護. JXSpecRep 是你遠端建立的配置檔案倉庫的名字,後面是配置檔案倉庫遠端的地址 . 注意此時不需要cd進入任何目錄,從預設位置輸入這個命令,即在點選終端快捷方式開啟的狀態下直接輸入下面的命令即可

pod repo add JXSpecRep http://git.op.xywy.com/liunian/JXSpecRep.git

2、檢視是否新增成功(檢視本地的所有repo)

pod repo list

或者開啟本地配置倉庫管理資料夾進行檢視

open ~/.cocoapods/repos

如果能看到自己團隊的repo(本地的私有倉庫),就OK了。

二、建立自己的pods公共元件庫

1、建立專案和.podspec檔案

方式1、可以利用pod提供的命令,直接建立一個pod庫的模板。這個很方便,可以直接建立一個工程,可以省去很多操作。  pod lib create FJRLocationManger

方式2、自己在專案根目錄建立podspec檔案。該方式比較麻煩,需要自己建立專案。

2、編寫.podspec檔案。檔案內容大概是這樣的:

//特別說明,裡面的註釋是博主為了大家知道什麼意思加的,實際使用時一定要去掉
Pod::Spec.new do |s|
//檔名
s.name = 'LHHAlertView'
//版本
s.version = '1.0.1'
//描述資訊
s.summary = 'A view like UIAlertView on iOS.'
//這裡的主頁自己隨便寫
s.homepage = 'http://blog.csdn.net/codingfire' 
//作者
s.authors = { 'codeliu6572' => '[email protected]' }
//資源路徑
s.source = { :git => 'https://github.com/codeliu6572/CustomAlertView.git', :tag => '1.0.1' }
//ARC模式
s.requires_arc = true
//license,一般我們用MIT
s.license = 'MIT'
//允許的最低系統使用版本
s.ios.deployment_target = '7.0'
//庫檔案路徑
s.source_files = 'LHHAlertView/*'
end

3、在可以建立私有庫的地方建立一個code repository(程式碼倉庫), 也就是存放要打的pod庫中的程式碼檔案。這裡我使用的是gitlab。

 點選右上角的加號按鈕,建立程式碼倉庫名為JXCodeRep

       

4.克隆code repository(程式碼倉庫)到本地,並將步驟1中的私有庫程式碼檔案上傳到code repository(程式碼倉庫)中。注意:上傳的時候需要打tag ,並且tag要和.podspec檔案中的tag對應。

5.將.podspec配置檔案push到遠端專門儲存配置檔案的倉庫中 

1、將配置檔案push到遠端專門儲存配置檔案的倉庫中 ,本地的也會同步更新 此時需要cd進入本地的.podspec所在的路徑,否則會找不到podspec檔案  使用下面的命令即可,JXSpecRep 是你建立的spec repository的名字,後面是你本地建立的.podspec檔案

pod repo push JXSpecRep JXTool.podspec --allow-warnings

2、出現下面資訊,則代表成功

  

  或者查詢本地私有spec管理資料夾,看到了JXTool則代表成功

   open ~/.cocoapods/repos

    

  3、可以在遠端倉庫中看到這個檔案,並且遠端配置檔案倉庫中有且只有這一個檔案