問題の概要
git、npm、gccなどの標準的な開発ツールを実行しようとした際、ターミナルに突然次のようなエラーメッセージが表示されてブロックされることがあります。
Agreeing to the Xcode/iOS license requires admin privileges, please re-run as root via sudo.
多くの場合、このエラーはmacOSのシステムアップデート後や、App Store経由でXcodeが更新された後に発生します。Appleは、開発者用バイナリを実行する前に、利用規約への新たな同意を求めています。Xcode IDEを一度も使わず、Command Line Tools (CLT) だけを使用している場合でも、保護されたディレクトリ内のライセンスフラグが更新されるまで、システムはこれらのツールをロックします。
解決策:1行のコマンドで解決
作業に戻るための最も早い方法は、次のコマンドを実行することです。これにより、数分かかる手動のスクロールや規約文の確認をスキップできます。
sudo xcodebuild -license accept
プロンプトが表示されたら、Macのパスワードを入力してください。入力中に文字やアスタリスクは表示されませんが、これはセキュリティ上の仕様であり正常です。そのまま入力してEnterキーを押してください。これにより、システム上のすべてのユーザーに対してライセンスが即座に同意済みとして設定されます。
原因
内部的には、macOSは共有の開発者コンポーネントを管理するためにxcodebuildを使用しています。Appleがバージョン番号を更新するたびに(例:Xcode 15.3から15.4へ)、LicenseAcceptedキーがリセットされます。ここでの主なハードルはシステムの権限です。ライセンスの状態は/Library/Preferences/に保存されているため、標準ユーザーアカウントでは更新を書き込むことができません。そのため、エラーメッセージで明示的にsudoが要求されるのです。
解決方法
方法 1:対話モードで同意する
「accept」フラグが機能しない場合や、規約の変更内容を実際に確認したい場合は、対話モードを使用します。
sudo xcodebuild -license
- スペースキーを押してドキュメントをページ送りします。
- 最後に
agreeと入力して Enter キーを押します。
方法 2:パス設定の混乱を修正する
システムが開発ツールの場所を見失うことがあります。これは、大容量のXcodeアプリと、より小規模なスタンドアロンのCommand Line Toolsの両方がインストールされている場合によく発生します。上記のコマンドで「requires Xcode」というエラーが出る場合は、パスをリセットしてください。
sudo xcode-select --reset
あるいは、アプリケーションフォルダ内のフル版Xcodeアプリを明示的に指定したい場合は、こちらを使用します。
sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
方法 3:管理対象Macの回避策
厳格なMDMプロファイルが設定された業務用PCでは、sudoによるシステムファイルへの書き込みがブロックされることがあります。ターミナルでの操作がうまくいかない場合は、アプリケーションフォルダからXcodeアプリ自体を開いてみてください。通常、「追加の必須コンポーネントをインストールする」というGUIプロンプトが表示されます。このビジュアルプロンプトを完了させることで、CLIコマンドが失敗する場合でもライセンスのブロックが解除されることがよくあります。
確認:修正の検証
sudoなしで簡単なバージョンチェックを実行し、ツールのブロックが解除されたか確認します。
git --version
xcode-select -p
ライセンスエラーの代わりに、有効なバージョン文字列(例:git version 2.45.2)が表示されれば、再び開発を始める準備は完了です。
参考資料
man xcodebuildを実行して、利用可能なすべてのビルドおよびライセンスフラグを確認してください。- Command Line Toolsに関するAppleのテクニカルノート TN2339を確認してください。
- Homebrewを使用している場合は、ライセンスの更新後に
brew doctorを実行して、環境の不整合がないか確認することをお勧めします。

