「Resolving Package Graph」のまま、授業用コードの読み込みが終わらない。
最短の対処は、先にブラウザまたはGitでリポジトリへのアクセスを確認し、その後にXcodeの解析情報、バージョン規則、Package.resolvedを調べることです。いきなり全キャッシュを削除してはいけません。
この記事を読むべき人
初めてSwiftUIの授業プロジェクトへ第三者のパッケージを追加し、エラーメッセージの意味が分からない学生向けです。 先生のサンプルや公開リポジトリを開いたものの依存関係の取得で止まる人、学校のMacや制限された回線、小規模チームの非公開リポジトリを使う人にも役立ちます。
最終更新:2026年8月30日。Xcode 26.6、Swift Package Manager、依存関係の仕様は、AppleのXcode 26.6リリースノート、Swift Packagesの公式資料で確認しています。
まず停止位置を記録して症状を分ける
Swift Package Managerは、プロジェクトに必要な教材を指定された版で取り寄せる仕組みだと考えると分かりやすいです。リポジトリの場所が見つからない、取得途中で止まる、指定された版の組み合わせが成立しない、取得後のビルドだけ失敗する、というように、止まった場所で対処が変わります。
最初に次の情報を一つのメモへ保存してください。
- Xcodeに表示されたエラー全文
- パッケージのリポジトリURL
- 追加またはプロジェクトを開いた手順
- 失敗した時点が取得前、解析中、ビルド中のどこか
- 授業で指定されたコミット、タグ、ブランチ
学習者の状況ごとに切り分ける
初めて公開パッケージを追加する場合
まずSafariなどのブラウザでリポジトリURLを開きます。ページが開かないならXcodeの再インストールより先に、URL、回線、プロキシ、証明書の順で確認します。
ページが開く場合は、Xcodeのプロジェクト設定からパッケージ追加画面を開き、入力したURLとバージョン規則を見直します。最低バージョンを許可しているのか、範囲を指定しているのか、特定のタグやブランチを指定しているのかで、選ばれる版が変わります。
その後、依存関係のない空のプロジェクトで同じ公開パッケージを追加してください。空のプロジェクトでは成功し、授業プロジェクトだけ失敗するなら、環境全体ではなく元プロジェクトの宣言や既存依存関係が疑わしくなります。
サンプルプロジェクトを開いた場合
Package.resolvedは、プロジェクトが実際に選んだ依存パッケージの版を記録するファイルです。図書館の貸出票のようなもので、授業プロジェクトを同じ状態に戻す手がかりになります。
先生のプロジェクトにある依存宣言、Package.resolved、リポジトリに現在存在するタグやコミットを照合してください。クラスメートや授業提供者と、使っているコミットが一致しているかも確認します。
再解析で版が変わりそうなら、先にPackage.resolvedを別名で保存し、変更差分を記録します。削除して偶然ビルドが通っても、SwiftUIのAPIや別パッケージとの組み合わせが変われば、課題の再現性を失う可能性があります。
注意:キャッシュ削除は、接続先、エラー全文、Package.resolvedの状態を保存してから行ってください。記録なしで削除すると、原因を隠したまま別の版を取得しただけなのか判断できなくなります。
学校のMacや制限された回線を使う場合
ブラウザでリポジトリを開けても、XcodeやGitから同じ場所を読み取れるとは限りません。次の順番で、許可された範囲だけを確認します。
- ブラウザでリポジトリのページと必要なファイルを開く
- Gitで同じURLの読み取りだけを試す
- Xcodeのログで接続先、認証、証明書、バージョン解決のどこで止まったかを見る
停止条件は明確です。公開リポジトリがブラウザとGitの両方で読めず、学校側の制限も学生自身では変更できないなら、同じ端末でXcodeを何度も入れ直すのはやめます。
非公開リポジトリを使うチームの場合
公開パッケージと非公開パッケージでは、必要な確認が違います。非公開リポジトリでは、まずアカウントに読み取り権限があるかを確認し、チーム管理者へ対象リポジトリの権限を問い合わせます。
HTTPSの認証情報、SSH鍵、Package.resolvedも役割が異なります。認証情報やSSH鍵はリポジトリへ接続するための門番の鍵であり、Package.resolvedは取得する版を記録する貸出票です。鍵を直しても版の組み合わせが解決しない問題は残ります。
検証には小さなテスト用リポジトリと最小権限のアカウントを使い、個人の秘密鍵やクラスメートのアカウントを共有しないでください。権限が確認できないまま正式な授業プロジェクトを何度も再解析するのは停止します。
Xcode 26.6で行う安全な確認手順
Xcode 26.6の画面や動作は、更新された公式資料に照らして確認します。パッケージの追加方法や設定場所は、AppleのSwift Packagesガイドを参照してください。
実際の作業は、次の順番で進めます。
- [ ] エラー全文、URL、プロジェクトのコミットを保存する
- [ ] ブラウザでリポジトリURLを開き、URLの誤りと接続失敗を分ける
- [ ] 同じURLをGitの読み取りで確認し、Xcodeだけの問題か比較する
- [ ] Xcodeのパッケージ設定、製品選択、バージョン規則を確認する
- [ ] 空のプロジェクトで同じ公開パッケージを試し、元プロジェクトと環境を分ける
- [ ] Package.resolvedを保存し、再解析前後の変更を記録する
- [ ] 非公開パッケージなら読み取り権限と認証方式を別々に確認する
- [ ] 同じコミットと依存版で、初回解析、再度開いた解析、ビルドを確認する
よくある疑問をまとめて確認する
FAQでは、Resolving Package Graph、公開リポジトリの取得停止、Package.resolved、学校回線、リモートMacへの移行という別々の検索意図を扱っています。どの場合も、先に失敗地点を保存してから変更を加えるのが共通の条件です。
Xcodeの依存関係を継続的に扱う授業やチームでは、同じプロジェクトと版を再現できる記録が重要です。自動ビルド環境での依存関係の扱いについては、Appleの継続的インテグレーション向け資料も参考になります。
環境を変えるか判断する
次の比較で、修復を続けるか、学習環境を変えるかを決めます。
| 確認結果 | 主な原因候補 | 次に取る行動 | 判断 |
|---|---|---|---|
| ブラウザもGitも接続できない | URL、回線、ドメイン制限 | URLと管理者設定を確認 | 端末交換より先に接続条件を確認 |
| ブラウザは開くがGitだけ失敗 | Git設定、証明書、認証 | 読み取り権限とログを確認 | 学校端末の管理条件を確認 |
| 空のプロジェクトは成功する | 元プロジェクトの宣言や版の衝突 | Package.resolvedと依存宣言を比較 | 先生へコミット更新を相談 |
| 別のMacでも同じ版で失敗する | リポジトリ権限、タグ、宣言 | 提供者または管理者へ確認 | 環境変更ではなく依存側を修正 |
| 別のMacだけ成功する | 元端末の回線、権限、設定 | 同じコミットで再現確認 | 短期レンタルを学習用に検討 |
ただし、長期にわたる安定した高負荷作業や、実機の物理ポートを使う授業では、自分で管理するMacのほうが適しています。反対に、課題の動作確認、授業期間だけのiOS開発、学校端末の制限回避ではなく合規な別環境の検証が目的なら、購入前にMACGPUのレンタル環境を試すほうが、原因が端末固有かを判断しやすいでしょう。
最後に、MACGPUのMacレンタル案内で利用条件を確認し、同じコースプロジェクトを持ち込んで接続、依存関係の解析、再起動後の再解析、ビルドまで順番に確認してください。リポジトリ自体の権限や版指定が原因なら環境を替えても解決しないため、先にそこを確定させるのが安全です。