點(diǎn)贊!!!
都還干著iOS嘛???!!!
背景
新入職公司成畦,分配一臺(tái)全新MacBook pro,借此機(jī)會(huì)梳理一下cocoapods的完整安裝流程既峡。
cocoapods安裝依賴關(guān)系
cocoapods安裝需要ruby预茄,更新ruby需要rvm隔显,下載rvm需要gpg崎溃,下載gpg需要homebrew蜻直,所以安裝順序是homebrew->gpg->rvm->ruby-cocoapods,注意這是完整流程,如果只是更新做cocoapods更新操作即可概而,不需要從第一步開始呼巷。
- 先安裝Homebrew
2020版mac 安裝homebrew失敗 極簡(jiǎn)解決方案
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
檢測(cè)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官方鏡像改為國(guó)內(nèi)鏡像
2.1 檢查更新ruby環(huán)境,更新gem版本
sudo gem update --system
2.2 查看gem版本
gem -v
注:請(qǐng)盡可能用比較新的 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 才為成功,如果有其他的請(qǐng)自行百度解決
*** CURRENT SOURCES ***
https://gems.ruby-china.com/
- 通過Homebrew安裝ruby最新版
3.1 查看 ruby 的安裝目錄(用處不大)
which -a ruby
注:執(zhí)行以上命令后會(huì)輸出 2 行压储,
- 其中 /usr/local/opt/ruby/bin/ruby 是通過 Homebrew 安裝的,
- 而 /usr/bin/ruby 是 Mac 自帶的 ruby源譬,
- 請(qǐng)不要隨便刪除自帶的 ruby渠脉, 否則會(huì)出現(xiàn)問題(這個(gè)本人也沒嘗試只是老外博文里說的)
通過 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 此時(shí)只需把 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 安裝成功
- 這時(shí)候才正式開始安裝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 檢測(cè)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目錄下臂拓。所有的第三方開源庫(kù)的Podspec文件都托管在https://github.com/CocoaPods/Specs厚脉,我們需要把這個(gè)Podspec文件保存到本地,這樣才能讓我們使用命令pod search 開源庫(kù)搜索一個(gè)開源庫(kù)胶惰,怎樣才能把github上的Podspec文件保存本地呢傻工?那就是 pod setup
執(zhí)行pod setup時(shí),CocoaPods 會(huì)將第三方的podspec索引文件更新到本地的~/.cocoapods/repos目錄下孵滞。
但是第一次執(zhí)行pod setup時(shí)中捆,這個(gè)github的Podspec索引文件比較大,有 300M 左右(以后會(huì)越來越大的)坊饶,所以第一次更新時(shí)非常慢.要耐心等待…..
最后當(dāng)出現(xiàn) Setup completed 表示setup完成泄伪。
如果遇到如下報(bào)錯(cuò):
[!] /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é)限制引起的翩腐,這時(shí)候使用 git config -l扮碧,查看Git配置,如下圖桑腮,紅色框是我配置的傳輸字節(jié)大小痘绎。
字節(jié)限制
解決方法:修改傳輸字節(jié)限制津函,使用以下方法。后面的限制數(shù)字孤页,可以自己定大卸唷(524288000,相當(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的時(shí)候蕉堰,會(huì)發(fā)現(xiàn)那是一個(gè)相當(dāng)?shù)穆杈弧9烙?jì)一天的時(shí)間都浪費(fèi)再這上面。這是因?yàn)槭褂玫膰?guó)外的鏡像屋讶,只要使用國(guó)內(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 是一個(gè)隱藏目錄
隱藏文件所在的目錄按鍵盤上面的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
你會(huì)發(fā)現(xiàn)那速度杠杠的
pod setup
成功后會(huì)生成~/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!划乖,稍等片刻就會(huì)出現(xiàn)所有帶AFNetworking字段的類庫(kù)出現(xiàn)。
4.7 CocoaPods 升級(jí)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)的“活動(dòng)監(jiān)視器”中查看“網(wǎng)絡(luò)”這塊懦尝,會(huì)發(fā)現(xiàn)有一些東西正在被下載,有一個(gè) “git-remote-https” 就是負(fù)責(zé)下載 spec repo cocoapods 的壤圃,所以慢慢等待吧陵霉!
4.8 CocoaPods的具體使用
新建一個(gè)Xcode工程,使用終端cd到工程目錄下
創(chuàng)建Podfile文件:
pod init
之后就可以在項(xiàng)目目錄里看到一個(gè)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索引文件