2025安裝CocoaPods

點(diǎn)贊!!!

都還干著iOS嘛???!!!

背景

新入職公司,分配一臺全新MacBook pro,借此機(jī)會梳理一下cocoapods的完整安裝流程。

cocoapods安裝依賴關(guān)系

cocoapods安裝需要ruby,更新ruby需要rvm,下載rvm需要gpg,下載gpg需要homebrew,所以安裝順序是homebrew->gpg->rvm->ruby-cocoapods,注意這是完整流程,如果只是更新做cocoapods更新操作即可,不需要從第一步開始。

  1. 先安裝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)
  1. 更換源,把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/
  1. 通過Homebrew安裝ruby最新版
    3.1 查看 ruby 的安裝目錄(用處不大)
which -a ruby

注:執(zhí)行以上命令后會輸出 2 行,

  1. 其中 /usr/local/opt/ruby/bin/ruby 是通過 Homebrew 安裝的,
  2. 而 /usr/bin/ruby 是 Mac 自帶的 ruby,
  3. 請不要隨便刪除自帶的 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 安裝成功

Mac下升級ruby至最新版本

  1. 這時候才正式開始安裝CocoaPods
    4.1 為了安全起見,執(zhí)行以下命令,卸載原有的CocoaPod(全新安裝用不到)
sudo gem uninstall cocoapods

cocopods徹底卸載重新安裝
刪除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索引文件

iOS 創(chuàng)建新項(xiàng)目使用pod install提示警告的幾個解決辦法

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容