0
0

pod update で CDN: trunk URL couldn't be downloaded: https://cdn.cocoapods.org/Specs/.... Response: Failure when receiving data from the peer というエラーが発生

Last updated at Posted at 2024-05-13

背景

CocoaPods を使用しているプロジェクトで pod update を行った際に以下のエラーが発生しました。

$ pod update                          
Update all pods
Updating local specs repositories
Analyzing dependencies
[!] CDN: trunk Repo update failed - 2 error(s):
CDN: trunk URL couldn't be downloaded: https://cdn.cocoapods.org/Specs/0/3/5/Firebase/10.24.0/Firebase.podspec.json Response: Failure when receiving data from the peer
CDN: trunk URL couldn't be downloaded: https://cdn.cocoapods.org/Specs/0/3/5/Firebase/10.25.0/Firebase.podspec.json Response: Failure when receiving data from the peer

対応

~/.cocoapods/repos/trunk/Specs ディレクトリ以下のファイルを全て削除することで解決しました。

$ rm -rf ~/.cocoapods/repos/trunk/Specs/*

~/.cocoapods/repos/trunk/Specs ディレクトリ以下を削除することで問題が解決する理由は、CocoaPods がローカルに保存しているリポジトリのキャッシュをクリアし、再度リポジトリ情報を全て新規にダウンロードするためです。キャッシュが破損していたり古い情報が含まれている場合、それが原因でダウンロードに失敗することがあります。キャッシュを削除することで、最新かつ正確なデータをサーバーから取得するため、問題が解消されることが多いです。

Specs ディレクトリについて

~/.cocoapods/repos/trunk/Specs ディレクトリには、CocoaPods の Trunk リポジトリの仕様(Specs)が含まれています。このディレクトリは、CocoaPods が利用可能な各ポッドのバージョン、依存関係、ソースの場所などのメタデータを格納した .podspec ファイルをキャッシュしておく場所です。各ポッドの設定情報が、階層的なディレクトリ構造で保存されています。

例えば、ある特定のライブラリ(例:Firebase)のすべてのバージョンの .podspec ファイルがここに配置されています。これにより、pod install や pod update が実行される際に、どのバージョンのポッドが必要で、どの依存関係が存在するかを CocoaPods が解決できるようになります。

~/.cocoapods/repos/trunk/Specs ディレクトリを削除しても、通常は問題は起きません。CocoaPods はこのディレクトリを自動的に再生成し、必要な .podspec ファイルを再ダウンロードします。これは基本的にはキャッシュをクリアする行為に等しく、古いまたは破損したデータが原因で発生している問題を解決するのに役立ちます。

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0