15 CocoaPods 使用指南
CocoaPods 是 Objective-C 的一個依賴管理工具,它可以自動化並簡化在專案中使用第三方函式庫的流程。
15.1 安裝 CocoaPods
你可以用 RubyGems 工具包安裝 CocoaPods,安裝指令如下:
$ sudo gem install cocoapods
但有時執行該指令會出現錯誤:
$ ERROR: While executing gem ... (Gem::FilePermissionError) $ You don't have write permissions for the /usr/bin directory.
原因是「/usr/bin is protected by system integrity protection and is not writeable by anybody even root.」所以要把 CocoaPods 安裝在 /usr/local/bin 路徑下,使用以下指令:
$ sudo gem install -n /usr/local/bin cocoapods
install 加上參數 -n 表示「Directory where executables are located」,參數含義可透過指令 "gem help install" 查詢。
15.2 更新索引
安裝完 CocoaPods 後執行 pod setup,將所有專案的 Podspec 檔案更新到本地的 ~/.cocoapods/ 目錄下。
$ pod setup
所有專案的 Podspec 檔案都託管在 https://github.com/CocoaPods/Specs.git 上,CocoaPods 在執行 pod install 和 pod update時,會預設先更新一次 Podspec 索引。如果更新太慢,可修改 repo 位址為國內的鏡像,例如 gitcafe 的鏡像操作指令如下:
$ pod repo remove master $ pod repo add master https://gitcafe.com/akuandev/Specs.git $ pod repo update
也可修改為 oschina 的鏡像 http://git.oschina.net/akuandev/Specs.git。
如果使用者在 pod 操作時找不到我們最新的 SDK 版本,截圖如下:

這種情況就是索引太舊需要更新了,執行指令 pod repo update 即可,或者在 pod install 的時候帶上參數 –-repo-update。
15.3 pod install 和 pod update 的區別
執行 pod install 之後,CocoaPods 會產生一個名為 Podfile.lock 的檔案。Podfile.lock 會鎖定當前各依賴函式庫的版本,之後如果多次執行 pod install 不會更改版本,要 pod update 才會改動 Podfile.lock。這樣多人協作時,可以防止第三方函式庫升級時造成大家各自的第三方函式庫版本不一致。
pod install 只會按照 Podfile 的要求來請求類別庫,如果類別庫版本號有變化,那麼將取得失敗。但是 pod update 會更新所有的類別庫,取得最新版本的類別庫。每次更改了 Podfile 檔案,你都需要重新執行一次 pod update 指令。
15.4 查詢 CocoaPods 版本
$ pod --version
15.5 Homebrew & RubyGems
Homebrew 是 Mac 平台的一個套件管理工具,提供了許多 Mac 下沒有的 Linux 工具等。官網:https://brew.sh,官網上有安裝指令:
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
安裝完 Homebrew,就可以用 Homebrew 的指令 brew 來安裝 RubyGems,指令安裝如下:
$ brew install ruby
RubyGems 官網為 https://rubygems.org。
