解決 CocoaPods trunk CDN 連接不上的問題
CocoaPods 自 1.8 版本開始默認使用 trunk CDN (https://cdn.cocoapods.org/) 作為 spec 的源,本意是非常好的,避免了需要本地 clone 一份龐大的 Specs 倉庫導致每次 update 都要全量更新的問題。然而不知為何國內連 trunk CDN 都被限制訪問了。
常見的問題是 pod install
時報錯 CDN: trunk URL couldn't be downloaded
以及 pod repo update
時 CDN: trunk Repo update failed
以下是幾種解決方案。
安裝 CocoaPods
在執(zhí)行以下步驟之前,請確保已安裝 CocoaPods。
可執(zhí)行
pod --version
檢查是否有安裝 CocoaPods 并查看版本號。
安裝 CocoaPods:打開終端 Terminal,執(zhí)行:
sudo gem install cocoapods
請參閱 CocoaPods入門
注:若根據(jù)以上入門指引,因網(wǎng)絡問題無法下載安裝 CocoaPods,可考慮使用 Ruby Gems 鏡像源:
清華 Gems 鏡像站: https://mirror.tuna.tsinghua.edu.cn/help/rubygems/
Ruby China 鏡像站: https://gems.ruby-china.com
解決連接不上 trunk CDN 的問題
方案一:使用代理
不管是使用舊版 CocoaPods 還是使用鏡像源,都不是最優(yōu)解,為了充分使用 CocoaPods 的特性,最推薦的還是使用代理來解決無法連接 trunk CDN 的問題。
方案二:使用舊版 CocoaPods
1.7.5 版本的 CocoaPods 默認使用 Specs 作為 repo 源,可以卸載后重新安裝舊版 CocoaPods。
- 卸載:
sudo gem uninstall cocoapods
- 安裝 CocoaPods 1.7.5:
sudo gem install cocoapods -v 1.7.5
方案三:手動切換使用官方 Git 源 / 鏡像源
不推薦此方案,比較繁瑣。
-
檢查當前使用的源
先執(zhí)行
pod repo list
查看本機的源有哪些,如果存在一個 master 源 (URL: https://github.com/CocoaPods/Specs.git
) 以及一個 trunk 源 (URL: https://cdn.cocoapods.org/
),則無需操作下面的第二步,可直接執(zhí)行pod repo remove trunk
刪除 trunk CDN 源。若使用 1.9.1 或以上版本,應該只存在一個 trunk CDN 源,此時需要手動添加 Git 源
-
添加源
-
執(zhí)行
pod repo add cocoapods https://github.com/CocoaPods/Specs.git
-
執(zhí)行
pod repo add tuna https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git
-
執(zhí)行
pod repo update --verbose
-
在 iOS 項目根目錄下的
Podfile
文件里指定源若找不到
Podfile
,請先cd
進 iOS 項目的根目錄,執(zhí)行pod init
往
Podfile
的第一行添加一句source https://xxxxx.git
(其中的 URL 為上一步添加的源的 URL)例:使用清華源
source 'https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git' target 'MyProject' do use_frameworks! end
如果沒有在 Podfile 里指定 source 的話,1.8 版本以上的 CocoaPods 會自動重新添加并使用 trunk CDN 源,因此每個項目的 Podfile 都需要顯式指定 source,非常麻煩。