macOSСредняя

Xcode License Error: как принять лицензионное соглашение на Mac

Статья объясняет, почему возникает ошибка лицензии Xcode на macOS, и предоставляет несколько проверенных способов её исправить, включая автоматическое принятие через терминал и работу с GUI.

Обновлено 17 февраля 2026 г.
5-10 мин
Низкая
FixPedia Team
Применимо к:Xcode 14.0+macOS 12.0+Command Line Tools for Xcode

Что означает ошибка лицензии Xcode

Ошибка "You have not agreed to the Xcode license agreements" (или её русскоязычный вариант) появляется при попытке использовать Xcode, Command Line Tools (xcodebuild, clang, git и другие) на macOS. Система блокирует выполнение, требуя принять лицензионное соглашение Apple. Типичные сценарии:

  • Запуск xcodebuild в терминале.
  • Использование git после установки Xcode.
  • Сборка проектов через make или cmake.
  • Запуск Xcode из App Store или Dock.

Полный текст ошибки:

xcodebuild: error: You have not agreed to the Xcode license agreements. Please open Xcode to accept the license agreement, or run `sudo xcodebuild -license` to view and accept the license agreements from the command line.

Причины возникновения

  1. Первоначальная установка Xcode или Command Line Tools
    После установки лицензия не принимается автоматически. Требуется явное подтверждение.
  2. Обновление macOS или Xcode
    При крупном обновлении системы (например, с macOS Monterey до Ventura) или Xcode лицензионное соглашение может сбрасываться.
  3. Запуск инструментов без графического интерфейса
    На серверах, в Docker-контейнерах или через SSH Xcode не запускается в GUI, поэтому лицензия не принимается интерактивно.
  4. Повреждение кэша лицензии
    Редко, но возможно повреждение файла лицензии в /Library/Developer/CommandLineTools/ или ~/Library/Developer/.
  5. Использование устаревшей версии Command Line Tools
    Если в системе остались старые инструменты после обновления Xcode, они могут конфликтовать.

Способ 1: Принятие лицензии через терминал (основной)

Это самый быстрый и универсальный метод, работающий даже без графического интерфейса.

  1. Откройте Терминал
    Используйте Spotlight (Cmd+Space → введите "Terminal") или найдите приложение в Программы → Утилиты.
  2. Запустите команду принятия лицензии
    Введите:
    sudo xcodebuild -license
    

    Нажмите Enter. Система запросит пароль администратора (символы не отображаются — вводите вслепую).
  3. Прокрутите лицензионное соглашение
    Нажимайте пробел для прокрутки текста до конца. После появления строки:
    By typing 'agree' you are agreeing to the terms of the software license agreements.
    

    Введите agree и нажмите Enter.
  4. Проверьте результат
    Выполните:
    xcodebuild -version
    

    Если вывод показывает версию Xcode (например, Xcode 15.0), ошибка устранена.

⚠️ Важно: Команда sudo требует прав администратора. Убедитесь, что учётная запись имеет привилегии sudo.

Способ 2: Принятие через графический интерфейс Xcode

Если у вас доступен GUI (например, на рабочей станции), можно принять лицензию через само приложение Xcode.

  1. Запустите Xcode
    Найдите Xcode в Launchpad или через Spotlight. При первом запуске появится окно с лицензионным соглашением.
  2. Примите лицензию
    Нажмите Agree в нижнем правом углу окна. Если окно не появилось, перейдите в меню:
    Xcode → Settings → Locations → Command Line Tools
    

    Выберите последнюю версию инструментов и закройте настройки — Xcode может предложить принять лицензию.
  3. Перезапустите терминал
    После принятия лицензии закройте и откройте Терминал заново, чтобы изменения вступили в силу.

Способ 3: Принудительное принятие для автоматизации (CI/CD)

В средах без пользовательского ввода (например, GitHub Actions, Jenkins) используйте неинтерактивный режим.

  1. Выполните команду с автоматическим согласием
    sudo xcodebuild -license accept
    

    Эта команда принимает лицензию без прокрутки текста. Работает в Xcode 13+.
  2. Для более старых версий Xcode
    Если -license accept недоступен, используйте:
    sudo xcodebuild -license < <(echo agree)
    

    Это эмулирует ввод agree в интерактивном режиме.
  3. Проверьте в скрипте
    Добавьте в CI-пайплайн:
    #!/bin/bash
    if ! xcodebuild -checkFirstLaunchStatus 2>/dev/null; then
      sudo xcodebuild -license accept
    fi
    

    Команда -checkFirstLaunchStatus проверяет, принята ли лицензия (доступна в Xcode 14+).

Способ 4: Переустановка Command Line Tools

Если ошибка persists после принятия лицензии, возможно, повреждены сами инструменты.

  1. Удалите текущие Command Line Tools
    sudo rm -rf /Library/Developer/CommandLineTools
    
  2. Установите заново
    xcode-select --install
    

    Или через softwareupdate:
    softwareupdate --install -a
    
  3. Примите лицензию
    После установки повторите Способ 1.

Профилактика

  • При обновлении macOS/Xcode сразу принимайте лицензию через терминал, чтобы избежать сбоев в CI/CD.
  • В скриптах развёртывания добавляйте автоматическое принятие лицензии (Способ 3) в начале.
  • Для серверов установите Xcode или Command Line Tools из пакета .pkg и сразу выполните sudo xcodebuild -license accept.
  • Регулярно проверяйте статус лицензии в автоматизированных средах:
    xcodebuild -checkFirstLaunchStatus || echo "License not accepted"
    

Дополнительные нюансы

Ошибка в Docker-контейнерах

Если вы собираете образ на базе macOS (например, для тестирования), добавьте в Dockerfile:

RUN xcodebuild -license accept

Это предотвратит падение сборки при первом использовании Xcode.

Несколько версий Xcode

При наличии нескольких версий Xcode (например, через xcode-select) примите лицензию для каждой:

sudo xcodebuild -license -firstLaunch  # Для активной версии
sudo xcode-select -s /Applications/Xcode_14.3.app/Contents/Developer
sudo xcodebuild -license -firstLaunch  # Для второй версии

Проблемы с правами sudo

Если команда sudo xcodebuild -license завершается с ошибкой прав, проверьте:

sudo -v  # Обновляет кэш sudo
dscl . -read /Groups/admin GroupMembership $USER  # Проверяет, входит ли пользователь в группу admin

Логирование принятия

Чтобы убедиться, что лицензия принята, проверьте файл:

cat /var/db/.AppleSetupDone  # Если файл существует, настройка завершена

Однако основной индикатор — успешный вывод xcodebuild -version.

Совместимость с старыми macOS

На macOS 10.15 (Catalina) и ранее команда -license accept может отсутствовать. Используйте интерактивный режим или обновите Xcode до версии 13+.

Восстановление после сбоя

Если терминал завис при прокрутке лицензии, нажмите Ctrl+C и повторите команду. Иногда помогает:

sudo xcodebuild -license < /dev/null

Это пропускает интерактивный режим, но может не сработать в новых версиях.

Заключение

Ошибка лицензии Xcode — типичная проблема после установки или обновления, но решается одной командой в терминале. Ключевые моменты:

  • Используйте sudo xcodebuild -license для интерактивного принятия.
  • В автоматизированных средах применяйте sudo xcodebuild -license accept.
  • При частых сбоях проверьте целостность Command Line Tools.

Эти методы покрывают 99% случаев на macOS 12+ с Xcode 14+. Если проблема остаётся, проверьте, что Xcode установлен корректно, и учётная запись имеет права администратора.

Часто задаваемые вопросы

Почему возникает ошибка лицензии Xcode после обновления macOS?
Можно ли автоматически принять лицензию Xcode в скриптах CI/CD?
Что делать, если команда sudo xcodebuild -license не работает?
Ошибка лицензии Xcode влияет на работу Homebrew или других пакетных менеджеров?

Полезное

Откройте Терминал
Выполните команду принятия лицензии
Прокрутите лицензионное соглашение
Проверьте решение проблемы

Эта статья помогла вам решить проблему?