暗黙的なインポート
生の Xcode プロジェクトで Xcode プロジェクトグラフを管理する複雑さを軽減するため、Apple はビルドシステムを設計し、依存関係を暗黙的に定義できるようにしました。つまり、アプリなどの製品は、依存関係を明示的に宣言しなくてもフレームワークに依存できます。小規模な場合は問題ありませんが、プロジェクトグラフの複雑さが増すにつれて、この暗黙性が原因で増分ビルドの信頼性が低下したり、プレビューやコード補完といったエディタ機能に影響が出ることがあります。
問題は、暗黙的な依存関係の発生を防げないことです。どの開発者でも Swift コードに import ステートメントを追加でき、それによって暗黙的な依存関係が作成されます。ここで Tuist が役立ちます。Tuist はプロジェクト内のコードを静的に解析して暗黙的な依存関係を調査するコマンドを提供します。次のコマンドを実行すると、プロジェクトの暗黙的な依存関係が出力されます。
bash
tuist inspect dependencies --only implicit
コマンドが暗黙的なインポートを検出すると、ゼロ以外の終了コードで終了します。
CI で検証する
新しいコードがアップストリームにプッシュされるたびに、このコマンドを 継続的インテグレーション の一部として実行することを強く推奨します。
すべての暗黙的なケースが検出されるわけではありません
Tuist は暗黙的な依存関係を検出するために静的コード解析に依存しているため、すべてのケースを検出できない場合があります。例えば、Tuist はコード内のコンパイラディレクティブによる条件付きインポートを理解できません。