點(diǎn)贊!!!
都還干著iOS嘛???!!!
背景
新入職公司,分配一臺全新MacBook pro,借此機(jī)會梳理一下cocoapods的完整安裝流程。
cocoapods安裝依賴關(guān)系
cocoapods安裝需要ruby,更新ruby需要rvm,下載rvm需要gpg,下載gpg需要homebrew,所以安裝順序是homebrew->gpg->rvm->ruby-cocoapods,注意這是完整流程,如果只是更新做cocoapods更新操作即可,不需要從第一步開始。
- 先安裝Homebrew
2020版mac 安裝homebrew失敗 極簡解決方案
git config --global --add safe.directory /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core
git config --global --add safe.directory /usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask
檢測Homebrew是否安裝成功
輸入
brew --version
返回
Homebrew 4.0.1-24-ge358035-dirty
Homebrew/homebrew-core (git revision 5c8a7bb5c3a; last commit 2023-02-17)
Homebrew/homebrew-cask (git revision 90f1b9d0c9; last commit 2023-02-17)

- 更換源,把Ruby官方鏡像改為國內(nèi)鏡像
2.1 檢查更新ruby環(huán)境,更新gem版本
sudo gem update --system
2.2 查看gem版本
gem -v
注:請盡可能用比較新的 RubyGems 版本,建議 2.6.x 以上。
我目前的版本為2.6.3,安裝更新后為3.0.2
2.3 刪除鏡像
gem sources --remove https://rubygems.org/
2.4 修改鏡像
gem sources --add https://gems.ruby-china.com/
2.5 為了驗(yàn)證你的Ruby鏡像是并且僅是ruby-china,執(zhí)行以下命令查看
gem sources -l
2.6 終端顯示為如下即為成功,注:確保只有 gems.ruby-china.com 才為成功,如果有其他的請自行百度解決
*** CURRENT SOURCES ***
https://gems.ruby-china.com/
- 通過Homebrew安裝ruby最新版
3.1 查看 ruby 的安裝目錄(用處不大)
which -a ruby
注:執(zhí)行以上命令后會輸出 2 行,
- 其中 /usr/local/opt/ruby/bin/ruby 是通過 Homebrew 安裝的,
- 而 /usr/bin/ruby 是 Mac 自帶的 ruby,
- 請不要隨便刪除自帶的 ruby, 否則會出現(xiàn)問題(這個本人也沒嘗試只是老外博文里說的)
通過 HomeBrew安裝的版本:ruby 3.2.1 路徑:/usr/local/opt/ruby/bin/ruby
Mac 自帶版本: ruby 2.6.3 路徑:/usr/bin/ruby
3.2 通過 Homebrew 安裝 ruby
brew install ruby
3.3 使用以下命令查看 ruby 版本
ruby -v
如果成功安裝之后使用命令查看 ruby 版本發(fā)現(xiàn)仍然是 Mac 自帶的版本,類似如下
ruby 2.6.3p62 (2019-04-16 revision 67580) [universal.x86_64-darwin20]
3.4 此時只需把 ruby 3.2.1 可執(zhí)行文件導(dǎo)入全局變量 PATH 中即可,使用如下命令:
echo 'export PATH="/usr/local/opt/ruby/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
3.5 再次查看 ruby 版本
ruby -v
顯示以下命令行即為成功
ruby 3.2.1 (2023-02-08 revision 31819e82c8) [x86_64-darwin20]
至此 ruby 3.2.1 安裝成功
- 這時候才正式開始安裝CocoaPods
4.1 為了安全起見,執(zhí)行以下命令,卸載原有的CocoaPod(全新安裝用不到)
sudo gem uninstall cocoapods
4.2 執(zhí)行以下命令來重新安裝cocoapod
//Mac OS X 10.11前
sudo gem install cocoapods
//Mac OS X 10.11后
sudo gem install -n /usr/local/bin cocoapods
4.3 如果沒有權(quán)限執(zhí)行pod,執(zhí)行以下命令,賦予/usr/local/bin給予執(zhí)行與讀取權(quán)限
sudo chmod +rx /usr/local/bin/
4.4 檢測pod是否安裝成功
pod --version
ikuai@iKuaideMacBook-Air ~ % pod --version
1.11.3
ikuai@iKuaideMacBook-Air ~ %
4.5 更新Podspec索引文件
安裝成功后 執(zhí)行
pod setup
pod setup作用:
將所有第三方的Podspec索引文件更新到本地的~/.cocoapods/repos目錄下。所有的第三方開源庫的Podspec文件都托管在https://github.com/CocoaPods/Specs,我們需要把這個Podspec文件保存到本地,這樣才能讓我們使用命令pod search 開源庫搜索一個開源庫,怎樣才能把github上的Podspec文件保存本地呢?那就是 pod setup
執(zhí)行pod setup時,CocoaPods 會將第三方的podspec索引文件更新到本地的~/.cocoapods/repos目錄下。
但是第一次執(zhí)行pod setup時,這個github的Podspec索引文件比較大,有 300M 左右(以后會越來越大的),所以第一次更新時非常慢.要耐心等待…..
最后當(dāng)出現(xiàn) Setup completed 表示setup完成。
如果遇到如下報(bào)錯:
[!] /usr/bin/git clone https://github.com/CocoaPods/Specs.git master --progress
Cloning into 'master'...
remote: Counting objects: 2016093, done.
remote: Compressing objects: 100% (555/555), done.
error: RPC failed; curl 56 LibreSSL SSL_read: SSL_ERROR_SYSCALL, errno 54
fatal: The remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed
可能是Git的傳輸字節(jié)限制引起的,這時候使用 git config -l,查看Git配置,如下圖,紅色框是我配置的傳輸字節(jié)大小。

字節(jié)限制
解決方法:修改傳輸字節(jié)限制,使用以下方法。后面的限制數(shù)字,可以自己定大?。?24288000,相當(dāng)于500M)
git config --global http.postBuffer 1048576000
執(zhí)行后在
git config -l
看看是否修改成功。
4.6 pod setup太慢終極解決辦法
pod setup的本質(zhì)就是將
https://github.com/CocoaPods/Specs.git
的代碼下載到~/.cocoapods/repos/master
當(dāng)我們?nèi)?zhí)行pod setup的時候,會發(fā)現(xiàn)那是一個相當(dāng)?shù)穆9烙?jì)一天的時間都浪費(fèi)再這上面。這是因?yàn)槭褂玫膰獾溺R像,只要使用國內(nèi)的鏡像就很好的解決了。
只要使用
cd ~/.cocoapods/repos
ikuai@iKuaideMacBook-Air ~ % cd ~/.cocoapods/repos
cd: no such file or directory: /Users/ikuai/.cocoapods/repos
ikuai@iKuaideMacBook-Air ~ %
如果沒有則創(chuàng)建
mkdir -p ~/.cocoapods/repos/
cd ~/.cocoapods/repos
備注:cocoapods 是一個隱藏目錄
隱藏文件所在的目錄按鍵盤上面的shift+cmmand+. ,接著看到隱藏文件夾內(nèi)凡是前面帶有小點(diǎn)的隱藏文件,或者是顯示淡藍(lán)色的文件都是隱藏文件,再次按上面的鍵隱藏。
然后 執(zhí)行
pod repo remove master
來刪除master文件
再執(zhí)行
//new
git clone --depth 1 https://github.com/CocoaPods/Specs.git master
//old
git clone https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git master
你會發(fā)現(xiàn)那速度杠杠的
pod setup
成功后會生成~/Library/Caches/CocoaPods/search_index.json文件。
終端輸入
rm ~/Library/Caches/CocoaPods/search_index.json
刪除~/Library/Caches/CocoaPods目錄下的search_index.json文件
刪除成功后終端輸入:
pod search AFNetworking(不區(qū)分大小寫)
輸出:Creating search index for spec repo 'master'.. Done!,稍等片刻就會出現(xiàn)所有帶AFNetworking字段的類庫出現(xiàn)。

4.7 CocoaPods 升級1.8.4的坑 CDN: trunk Repo update failed
由于項(xiàng)目是用CocoaPods管理,CocoaPods 1.8將CDN切換為默認(rèn)的spec repo源,并附帶一些增強(qiáng)功能!CDN支持最初是在1.7版本中引入的,最終在1.7.2中完成。 它旨在大大加快初始設(shè)置和依賴性分析。
解決辦法:
(1)podfile添加source 'https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git'
(2)pod repo list 查看一下源列表
(3)pod repo remove trunk 移除trunk源
當(dāng)執(zhí)行 pod install 或者 pod update 后出現(xiàn) Cloning spec repo cocoapods from https://github.com/CocoaPods/Specs.git 卡住情況,如圖:

其實(shí)并沒有卡住,只是因?yàn)榫W(wǎng)速慢的原因?qū)е孪螺d spec repo cocoapods 速度慢,給人感覺像是卡住了。你可以到系統(tǒng)的“活動監(jiān)視器”中查看“網(wǎng)絡(luò)”這塊,會發(fā)現(xiàn)有一些東西正在被下載,有一個 “git-remote-https” 就是負(fù)責(zé)下載 spec repo cocoapods 的,所以慢慢等待吧!

4.8 CocoaPods的具體使用
新建一個Xcode工程,使用終端cd到工程目錄下
創(chuàng)建Podfile文件:
pod init
之后就可以在項(xiàng)目目錄里看到一個Podfile文件
打開Podfile文件:
open Podfile
添加:
source ‘https://github.com/CocoaPods/Specs.git’
platform :ios, '9.0'
target '項(xiàng)目名稱' do
pod 'AFNetworking'
end
保存后退出
開始下載:
pod install
Pod安裝需要ruby,ruby需要rvm
macOS Catalina 10.15 十分鐘安裝 CocoaPods
4. 更新Podspec索引文件