SPMでエラーが発生した際の解消方法を紹介します。
Proxy環境だとSPMの登録に失敗する
SPMを導入する際、「Search or Enter Package URL」欄にURLを入力したとき、Proxy環境だと以下のようなエラーが発生したり、検索結果が表示されないことがあります。
Received invalid response at https://github.com/realm/realm-swift.git.
Please make sure it is a package collection URL.
どうも「Search or Enter Package URL」での検索ではシステム設定のProxyが適用されないため、Proxy経由での通信が必須の環境ではエラーになってしまうようです。
この問題に対し、私の環境で試して解消できた手順を2つ紹介します。
方法1:Source Controll Accountを設定する
GitHubのアカウント連携を設定することで検索できるようになります。
事前準備としてにGitHub上で追加したいOSSにStarをつけた状態にし、以下の手順でXcodeにGitHubアカウントを設定します。
- Xcodeのメニューから「Xcode」>「Settings…」を選択して設定画面を表示
- Accountsタブを選択
- 左下の「+」ボタンをタップ
- GitHubを選択
- アカウントIDとトークンを入力して「Sign Inボタン」をタップ
※トークンの取得方法は こちらの記事 が参考になります
この設定を行うと、Add Packageの画面にGithubというメニューが追加され、「Search or Enter Package URL」から、StarをつけたOSS名で検索できるようになります。
方法2:XcodeGenを導入する
XcodeGenはプロジェクトの構成を定義ファイル( project.yml
)に記載し、この定義ファイルからからプロジェクトファイル( .xcodeproj )生成するコマンドラインツールです。
この手順の場合、「Search or Enter Package URL」欄で検索する手順をスキップ(手動設定)できます。
本題とは逸れてしまいますが、初期導入が少し手間というデメリットはあるものの、複数人で開発するプロジェクトではコンフリクトの発生を抑えられたり、プロジェクト設定の差分をレビューしやすくなるといったメリットがあるためオススメです。
導入手順の詳細は こちらの記事 がとてもわかりやすいです。
その他
設定はできたけどフェッチできないという時は、以下のコマンドでgitコマンドに対してProxyを設定してみると解消するかもしれません。
git config –global http.proxy http://[proxy]:[port]
コメント