Неявные импорты
Чтобы упростить поддержку графа проекта Xcode с использованием обычных проектов Xcode, Apple спроектировала систему сборки так, чтобы зависимости могли определяться неявно. Это означает, что продукт, например приложение, может зависеть от фреймворка даже без явного объявления этой зависимости. В небольших проектах это приемлемо, но по мере усложнения графа проекта неявность может приводить к ненадёжным инкрементальным сборкам или проблемам с функциями редактора, такими как предварительный просмотр или автодополнение кода.
Проблема в том, что вы не можете предотвратить появление неявных зависимостей. Любой разработчик может добавить оператор import в свой Swift-код, и неявная зависимость будет создана. Здесь на помощь приходит Tuist. Tuist предоставляет команду для анализа неявных зависимостей путём статического анализа кода вашего проекта. Следующая команда выведет список неявных зависимостей вашего проекта:
tuist inspect dependencies --only implicit
Если команда обнаруживает какие-либо неявные импорты, она завершается с кодом выхода, отличным от нуля.
Мы настоятельно рекомендуем запускать эту команду как часть процесса непрерывной интеграции каждый раз, когда новый код отправляется в репозиторий.
Поскольку Tuist полагается на статический анализ кода для выявления неявных зависимостей, он может пропустить некоторые случаи. Например, Tuist не способен обрабатывать условные импорты через директивы компилятора в коде.