CocoaPods安裝與使用(2020年重要更新)

請根據(jù)更新記錄(有分割線)有選擇的閱讀本文。


本文于2020年4月25更新。

1.起因:

更新CocoaPods到1.9.1后,當(dāng)天使用一切正常,CDN速度就是快,還沉浸在新版帶來便利的喜悅中,結(jié)果第二天就受挫了,使用pod search搜索框架時出錯:
[!] CDN: trunk Repo update failed - 5 error(s): CDN: trunk URL couldn't be downloaded: https://raw.githubusercontent.com/CocoaPods/Specs/master/Specs/b/e/8/SVProgressHUD/0.7/SVProgressHUD.podspec.json Response: Timeout was reached

2.分析(未找到原因)
簡易結(jié)構(gòu)

畫了如上CocoaPods簡易結(jié)構(gòu)圖(不準(zhǔn)確),可以了解1.8以后不再像以前那樣下載master龐大的庫源,而是使用CDN技術(shù)默認trunk庫源。
造成pod search搜索出問題可能是網(wǎng)絡(luò)連不上(具體原因不詳),要不使用代理,要不繼續(xù)使用舊版CocoaPods,下面是新版卻使用舊版master庫源方式暫時解決問題的方法。

3.解決
  • 步驟1:恢復(fù)master為默認庫源。
cd ~/.cocoapods/repos #進入庫源路徑
pod repo remove master #移除舊master庫源
git clone https://github.com/CocoaPods/Specs.git master #克隆到本地(費時)
pod repo remove trunk #移除trunk庫源

其中第三句可以使用清華的鏡像或許速度更快一點:

git clone https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git master 
  • 步驟2:在 Podfile 文件頂部指定源地址。
source 'https://github.com/CocoaPods/Specs.git'
# source 'https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git'

注:如果沒有在 Podfile 里指定 source 的話,1.8 版本以上的 CocoaPods 會自動重新添加并使用 trunk CDN 源,使用pod search搜索可能會出問題了,因此每個項目的 Podfile 都需要顯式指定 source。


本文于2020年4月24日更新。

主要是Cocoapods 1.8.0(使用CDN提速)和1.9(支持XCFrameworks)重要更新,強烈建議升級,終端執(zhí)行

  • sudo gem install cocoapodssudo gem install cocoapods -n /usr/local/bin
  • 不需要pod setup,直接使用。同時可以刪除以前的庫源pod repo remove master來釋放空間(你懂的,mac電腦最缺)。

具體介紹參考上部鏈接。


本文于2019年9月更新(初稿),如果過期,請參考其他文章。

1.為什么要使用CocoaPods

CocoaPods:基于Ruby的iOS第三方庫管理的工具。
如iOS編程時會使用別人已實現(xiàn)的功能代碼(即第三方庫),每次手動導(dǎo)入這些庫和依賴比較麻煩,而CocoaPods解決這方面的問題。

2.如何安裝CocoaPods

安裝CocoaPods需要Ruby環(huán)境(一種跨平臺腳本語言),macOS自帶的Ruby環(huán)境可能過低需要升級,而Ruby是由RVM(即使Ruby Version Manager)管理的,因此需要先安裝RVM。以下指令在Terminal終端執(zhí)行。

3.安裝RVM

  • rvm -v 顯示RVM版本,沒有安裝RVM會提示不存在。
  • curl -L https://get.rvm.io | bash -s stable 下載安裝RVM。
  • source ~/.rvm/scripts/rvm 初始化RVM。
  • rvm -v 檢查版本(同上)。
安裝RVM

4.安裝Ruby

  • ruby -v 檢查Ruby版本,低于2.2.2時安裝CocoaPods會報錯。
  • rvm list known 查詢所有的Ruby版本,推薦最新版。
  • echo "ruby_url=https://cache.ruby-china.com/pub/ruby" > ~/.rvm/user/db替換 RVM 的配置信息(使用速度更快的國內(nèi)鏡像)
  • rvm install 2.6.4 --disable-binary 下載安裝Ruby2.6.4版(忽略二進制)。注意此過程會檢查有沒有安裝Homebrew(基于Ruby語言的macOSX系統(tǒng)級的軟件包管理器)并自動幫你安裝(如果安裝不成功會有Requirements installation failed with status: 1提示,請參考附錄2。
  • rvm list 查看Ruby版本,是否安裝成功。
安裝Ruby

5.更改下載源

CocoaPods的Ruby軟件包是由RubyGems管理的,為了國內(nèi)能用gem更快下載安裝CocoaPods需要更換下載源(如果已更換可忽略)。

  • sudo gem update --system 更新RubyGems升級成功后會提示:RubyGems system software updated
  • gem sources -l 顯示源(根據(jù)情況移除所有國外源添加國內(nèi)源)
  • gem sources --remove https://rubygems.org/ 移除國外源
  • gem sources -a https://gems.ruby-china.com/ 添加國內(nèi)源

6.安裝CocoaPods

  • sudo gem install -n /usr/local/bin cocoapods 安裝CocoaPods(macOS10.11以下系統(tǒng)使用sudo gem install cocoapods)
  • pod setup初始化本地庫,注意如果該句無效時(如下圖沒反應(yīng))應(yīng)更換下面等價的語句git clone https://git.coding.net/CocoaPods/Specs.git ~/.cocoapods/repos/master
  • pod search AFNetworking測試搜索第三方框架
安裝CocoaPods

7.終端方式使用CocoaPods

  • 終端使用cd指令進入Xcode所創(chuàng)建項目文件夾下。
  • 搜索第三方框架,如pod search afnetworking,顯示內(nèi)容過多時可以通過上下鍵滾動,q鍵退出。
  • 創(chuàng)建Profile文件,如pod initvim Podfile(推薦)
  • 編輯Profile文件,如vim Podfileopen Podfile后編輯內(nèi)容如下圖(關(guān)于vim編輯器使用方法可自行學(xué)習(xí))。
  • 安裝框架pod installpod install --no-repo-update(后者不更新本地庫速度快)
  • 打開項目文件夾下的xcworkspace文件,即可import<AFNetworking.h>方式導(dǎo)入該第三方框架頭文件使用了。
使用CocoaPods

8.卸載CocoaPods

終端執(zhí)行sudo gem uninstall cocoapods即可卸載。

9.Xcode插件方式使用CocoaPods


附錄一、參考文章

1.《iOS開發(fā)----cocoapods的那些事兒》

2.《CDN,CocoaPods 1.8.0 最完美的升級》

3.《解決 CocoaPods trunk CDN 連接不上的問題》


附錄二、CocoaPods常見錯誤

建議搜索查找,快捷鍵command+f或control+f

1.pod setup沒反應(yīng)、出錯、或提示Unable to find a pod with name, author, summary, or description matching

  • 解決方法1:執(zhí)行git clone https://git.coding.net/CocoaPods/Specs.git ~/.cocoapods/repos/master代替pod setup
  • 解決方法2:先rm ~/Library/Caches/CocoaPods/search_index.json再執(zhí)行pod setup

2.pod search搜索時沒反應(yīng)或提示CDN: trunk - Cannot perform full-text search because Algolia returned an error: 0: Cannot reach any host: execution expired, execution expired, execution expired, execution expired需要指定搜索源,具體步驟如下()。

  • podfile文件中指定source源為master:source 'https://github.com/CocoaPods/Specs.git'
  • 移除trunk源:終端執(zhí)行pod repo remove trunk

3.pod install時提示Couldn't determine repo type for URL: 'https://github.com/CocoaPods/Specs.git': execution expired
Cocoapods 1.8.0以后使用CDN大幅提升pod update速度具體參考本文上部。

待補充....

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容