xcodebuild
プロセスの一部として Swift Package Manager を使用している場合、次のエラーメッセージで、コマンドが失敗することがあります。
xcodebuild: error: Could not resolve package dependencies: Authentication failed because the credentials were rejected
または
xcodebuild: error: Could not resolve package dependencies: The server SSH fingerprint failed to verify.
この問題は、SSH キー認証を使用しプライベート git リポジトリにアクセスする場合にのみ発生します。
これは、xcodebuild
が SSH キーを利用する際に起こるバグが原因であり、Xcode 11からの既知の問題で、ローカルと CI 環境の両方で発生します。
xcodebuild
はシステムの ssh の設定を利用せず、またCircleCI が ssh-agent
に保存しているキーにアクセスできません。 これを回避するためには、Xcode がOS上の ssh を使用するよう設定します。
具体的には、コンフィグファイルの checkout
ステップの直後に以下の行を追加します。
- run: sudo defaults write com.apple.dt.Xcode IDEPackageSupportUseBuiltinSCM YES
- run: rm ~/.ssh/id_rsa || true
- run: for ip in $(dig @8.8.8.8 bitbucket.org +short); do ssh-keyscan bitbucket.org,$ip; ssh-keyscan $ip; done 2>/dev/null >> ~/.ssh/known_hosts || true
- run: for ip in $(dig @8.8.8.8 github.com +short); do ssh-keyscan github.com,$ip; ssh-keyscan $ip; done 2>/dev/null >> ~/.ssh/known_hosts || true
コメント
記事コメントは受け付けていません。