Перейти к содержимому

Неявные импорты

Чтобы упростить поддержку графа проекта Xcode с использованием обычных проектов Xcode, Apple спроектировала систему сборки так, чтобы зависимости могли определяться неявно. Это означает, что продукт, например приложение, может зависеть от фреймворка даже без явного объявления этой зависимости. В небольших проектах это приемлемо, но по мере усложнения графа проекта неявность может приводить к ненадёжным инкрементальным сборкам или проблемам с функциями редактора, такими как предварительный просмотр или автодополнение кода.

Проблема в том, что вы не можете предотвратить появление неявных зависимостей. Любой разработчик может добавить оператор import в свой Swift-код, и неявная зависимость будет создана. Здесь на помощь приходит Tuist. Tuist предоставляет команду для анализа неявных зависимостей путём статического анализа кода вашего проекта. Следующая команда выведет список неявных зависимостей вашего проекта:

bash
tuist inspect dependencies --only implicit

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

Проверка в CI

Мы настоятельно рекомендуем запускать эту команду как часть процесса непрерывной интеграции каждый раз, когда новый код отправляется в репозиторий.

Обнаруживаются не все случаи неявных зависимостей

Поскольку Tuist полагается на статический анализ кода для выявления неявных зависимостей, он может пропустить некоторые случаи. Например, Tuist не способен обрабатывать условные импорты через директивы компилятора в коде.