Azure DevOps Pipelines XCode 16.0 не удается найти утилиту “actool”

Вопрос или проблема

Мы только что обновили версию XCode в наших Azure Pipelines с 15.4 до 16.0. Мы используем Microsoft Hosted Agent, macOS-14. У нас есть задача в Pipeline, выполняющая следующее:

sudo xcode-select -switch /Applications/Xcode_16.0.app
xcode-select -print-path
xcodebuild -version

Однако при запуске Pipeline мы получаем ошибку:

xcrun: error: unable to find utility "actool", not a developer tool or in PATH

С 15.4 все работало отлично, но мы обновили, потому что в 15.4 у нас были ошибки компиляции MAUI, такие как:

error MT4162: The type 'UIKit.NSAdaptiveImageGlyph' (используемый в качестве параметра в UIKit.UITextField.InsertAdaptiveImageGlyph) недоступен в iOS 17.5 (он был представлен в iOS 18.0). Пожалуйста, соберите с новым iOS SDK (обычно это делается с помощью самой последней версии Xcode)

Есть какие-нибудь идеи, что может быть не так?

Ответ или решение

Проблема, с которой вы столкнулись, связана с отсутствием утилиты actool после обновления Xcode до версии 16.0 на Azure DevOps Pipelines. Эта утилита необходима для сборки проектов, использующих Asset Catalogs, и ее отсутствие может быть вызвано несколькими причинами. Давайте разберемся, как решить вашу проблему.

Решение

  1. Проверьте правильность установки Xcode:
    Убедитесь, что Xcode версии 16.0 установлен правильно. Проверьте, что он доступен в указанном вами пути /Applications/Xcode_16.0.app. Запустите следующие команды, чтобы удостовериться, что Xcode установлен корректно:

    sudo xcode-select --switch /Applications/Xcode_16.0.app
    xcode-build -version
    xcode-select -print-path

    Если путь отображается неверно или команда xcodebuild не работает, то стоит переустановить Xcode.

  2. Проверьте наличие утилиты actool:
    Утилита actool находится в каталоге Xcode в следующем пути:

    /Applications/Xcode_16.0.app/Contents/Developer/usr/bin/actool

    Выполните команду для проверки ее наличия:

    ls /Applications/Xcode_16.0.app/Contents/Developer/usr/bin/actool

    Если файл не найден, это может означать, что ваш Xcode установлен неправильно.

  3. Обновите пути:
    Поскольку вы используете Azure DevOps, убедитесь, что ваша конфигурация AGENT корректно указывает на нужные версии Xcode и их инструменты. Например, попробуйте установить переменные окружения, чтобы указать на правильные пути:

    export PATH="/Applications/Xcode_16.0.app/Contents/Developer/usr/bin:$PATH"

    Это должно помочь системе распознать actool.

  4. Запустите Xcode License Agreement:
    Иногда, после обновления Xcode, необходимо согласиться с лицензией. Это можно сделать с помощью следующей команды:

    sudo xcodebuild -license

    Убедитесь, что вы согласились с условиями.

  5. Проверьте наличие обновлений для Azure DevOps:
    Если проблема все еще существует, проверьте наличие обновлений для Azure DevOps, так как поддержка новых версий Xcode может быть добавлена в более поздних версиях.

  6. Используйте другой хостинг:
    Если проблема не решается, рассмотрите возможность использования Self-Hosted Agent с предустановленной версией Xcode 16.0, что иногда позволяет установить больше контроля над инструментами и путями.

Заключение

Если все вышеперечисленные шаги не помогают, я рекомендую обратиться в службу поддержки Azure DevOps или на форумы сообщества, чтобы узнать о возможных особенностях совместимости версии Xcode и инструментов сборки. Вы также можете попробовать временно вернуться к Xcode 15.4, если это возможно, пока проблема с версией 16.0 не будет решена.

Оцените материал
Добавить комментарий

Капча загружается...