透過 CocoaPods 來管理第三方的套件
當我們開發專案時,免不了需要引用到第三方的套件,最常遇到的問題就是當套件更新時我們就得必須重新引用,這對我們開發者來說是一件相當耗時的工作,且還有可能誤刪其它套件的風險在,但若使用 CocoaPods 來替我們管理這些套件,就能免去諸如此類的問題發生囉!
在使用 CocoaPods 之前我們先來了解下它,每種語言發展到某種程度時,就會出現相依賴的管理工具,像是管理套件的工具在其它語言也是有的。
例如:
- Java:maven
- Nodejs:npm
iOS 不免俗的也出現了 CocoaPods,CocoaPods 的源碼都是被放在 GitHub 上管理的,如果套件開發者有新的版本釋出,我們使用者只要執行一行指令即可更新我們本機端的套件版本喔!今天就分以下幾個章節來介紹它。
- 如何安裝 CocoaPods。
- 如何透過來 CocoaPods 引用 GitHub 上的套件。
- 反安裝 Xcode 專案下利用 CocoaPods 引入的第三方套件。
- 安裝 CocoaPods
CocoaPods 不需另外下載,它伴隨著 Mac OS 已存在我們的本機上,我們只要在終端機執行安裝的指令即可,安裝過程中會有點耗時,請不要因等待過久就把它關掉。
▼打開終端機執行 sudo gem install cocoapods。
▼再來會要求你輸入登入電腦的密碼,在輸入過程中是不會顯示密碼的,請直接一直往下輸入即可,接下來就靜靜的等待,畫面不動也請不要關掉,直到出現第二個畫面表示已安裝完成(gems installed)。
▼以上已完成安裝 CocoaPods,執行 pod — version 指令可查詢當前的版本。
- 透過 CocoaPods 引用 GitHub 上的套件。
▼首先建立一個空的專案,名稱為 CocoaPodsDemo。
▼以引用 Google AD 第三方套件為例子來說明,Google 會提供這樣的一段指令讓開發者透過 CocoaPods 來引用它。(這段文字一定會是 pod ‘xxxxxxx’ 開頭的)
▼接著我們要產生一個檔名為 Podfile 的純文字(txt)檔並去掉副檔名,並加入以下內容(Podfile 是 CocoaPods 參照的設定檔)
# Uncomment this line to define a global platform for your project platform :ios, ‘9.0’ # Uncomment this line if you’re using Swiftuse_frameworks!target ‘CocoaPodsDemo’ do pod ‘Google-Mobile-Ads-SDK’, ‘~> 7.11.0’end
備註:亦可將目錄切換至要建立profile的目錄下,鍵入「pod init」亦會產生profile 檔。
▼將該檔案放置剛剛建立的空專案下
▼接著再打開終端機,並將路徑切換至剛剛所建立的空專案下。
指令 => cd + 專案路徑
懶得打可以直接拖曳專案至終端機它將會自動產生路徑,拖曳完成後請關掉Xcode 再執行 pod install。 (很重要很重要很重要)
備註:過程會有點久請耐心等待不要關掉直到出現第二張圖的 Pod installation。
▼到此已經算完成安裝第三方的套件了,此時專案的檔案架構已經變了,要打開該專案的路徑也不一樣了,請選擇副檔名為 .xcworkspace 的檔案打開它。
▼最後來測試剛剛安裝的套件是否成功,在任何一個類別鍵入 import GoogleMobileAds,接著重新編譯(command + B),若編譯無誤表示你成功啦!
備註:
1. Google若有釋出新的版本即只要在 Podfile 修改版本號後,打開終端機執行 pod install 即可,或是執行 pod update 亦可。
這兩種指令的差異在於:
pod install => 更新至你 Podfile 指定的版本。
pod update => 更新至最新版本。
備註:有無新版本可在官網查詢或 Xcode console 也會自動提示有新版本
https://firebase.google.com/docs/admob/release-notes
2. 這邊只是舉 Google AD 的例子來講解,若在 GitHub 上有提供可使用 CocoaPods 的方式來引入的皆適用此方式。
- 反安裝 Xcode 專案下利用 CocoaPods 引入的第三方套件。
▼打開終端機執行安裝 CocoaPods 反安裝的套件
$ sudo gem install cocoapods-deintegrate cocoapods-clean
▼執行 CocoaPods 反安裝的指令
$ pod deintegrate [XCODE_PROJECT]
[XCODE_PROJECT] => 要反安裝 CocoaPods 的專案路徑
▼將路徑切換至要反安裝 CocoaPods 的專案路徑,並執行 Clean 的指令
$ pod clean
▼將路徑切換至要反安裝 CocoaPods 的專案路徑,並執行移除 Podfile 的指令
$ rm Podfile
CocoaPods 的官網,有更多的指令等著大家學習喔,若有任何問題,歡迎提出討論。