Как предоставить разрешение Xcode для выполнения UI-тестов?

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

Мои юнит-тесты Swift работают нормально, но UI-тесты работают только периодически, потому что у Xcode нет разрешения на автоматизацию.

Я не могу включить автоматизацию Xcode в настройках MacOS, потому что его нет в списке приложений (Конфиденциальность и безопасность/автоматизация), и нет кнопки добавления.

введите описание изображения здесь
Существует ли способ добавить это в настройки MacOS программно или есть ли настройка проекта/plist в Xcode, которую я упустил?
(MacOS 15.1, Xcode 16)

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

Чтобы предоставить Xcode разрешения для выполнения UI-тестов на macOS, необходимо следовать определённым шагам, особенно если приложение не отображается в списке автоматизации. Давайте рассмотрим эту задачу более подробно.

Понимание проблемы с разрешениями

  1. Причины sporadic работы UI-тестов: UI-тесты в Xcode требуют специального разрешения на автоматизацию интерфейса, чтобы взаимодействовать с пользовательским интерфейсом приложения. Когда Xcode не имеет должных разрешений, тесты могут работать нестабильно или вообще не выполняться.

  2. Недоступность Xcode в настройках автоматизации: Если Xcode не отображается в разделе "Настройки безопасности и конфиденциальности" (Privacy & Security) > "Автоматизация" (Automation), это может затруднить одобрение нужных прав.

Шаги для решения проблемы

1. Проверка обновлений

Убедитесь, что Windows и Xcode обновлены до последних версий. Иногда проблемы с разрешениями могут быть исправлены в новых обновлениях.

2. Настройка разрешений вручную

Попробуйте выполнить следующие шаги:

  • Откройте "Системные настройки" (System Preferences):

    • Перейдите в "Безопасность и конфиденциальность" (Security & Privacy).
    • Выберите вкладку "Конфиденциальность" (Privacy).
  • Сброс разрешений:

    • Если Xcode уже был установлен и запускался, необходимо провести сброс разрешений.
    • Для этого: закройте Xcode, затем удалите папку ~/Library/Application Support/com.apple.TCC/TCC.db. Это действие приведет к сбросу всех настроек доступа.
    • Перезапустите Xcode и попробуйте снова выполнить UI-тесты. Программа должна запросить все необходимые разрешения заново.

3. Создание новых UI тестов

  • Создайте новый UI-тест в вашем проекте. Иногда это может инициировать запрос на разрешение.

4. Использование терминала

Попробуйте использовать терминал для запуска Xcode с необходимыми разрешениями:

sudo /Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild -project YourProject.xcodeproj -scheme YourScheme -destination 'platform=iOS Simulator,name=iPhone 14' test

5. Программное добавление приложения в разрешения

На данный момент, программный способ добавления приложений в список автоматизации не поддерживается macOS. Разрешения должны быть вручную одобрены пользователем.

6. Обновление настроек проекта

Убедитесь, что в проекте Xcode правильно настроены цели для UI-тестов:

  • Перейдите в настройки проекта (Project) > Ваш проект > Цели (Targets).
  • Убедитесь, что все необходимые библиотеки, такие как XCTest, правильно добавлены в ваш тестовый целевой файл.

7. Проверка разрешений на уровне системы

  • Убедитесь, что ваша пользовательская учетная запись имеет достаточные права на выполнение автоматизации.
  • В некоторых случаях, необходимо предоставить Xcode полные права доступа, что можно сделать через "Конфиденциальность" > "Полный доступ к диску".

Заключение

В случае, если вышеупомянутые шаги не помогли, рассмотрите возможность обращения в службу поддержки Apple или на форумы разработчиков. Следует помнить, что проблемы с разрешениями могут потребовать комплексного подхода и времени для их решения. Это некоторые из наиболее часто используемых методов для устранения проблемы с обеспечением автоматизации UI-тестов в Xcode.

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

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