隐式导入
隐式导入 {#implicit-imports}
Section titled “隐式导入 {#implicit-imports}”为了减轻使用原始 Xcode 项目维护项目图的复杂性,苹果设计了一个允许隐式定义依赖项的构建系统。这意味着一个产品,例如一个应用,可以依赖于一个框架,即使没有显式声明这种依赖关系。在规模较小时,这没问题,但随着项目图变得越来越复杂,隐式行为可能会表现为不可靠的增量构建或基于编辑器的功能(如预览或代码补全)出现问题。
问题是,你无法阻止隐式依赖的发生。任何开发人员都可以在他们的 Swift 代码中添加 import 语句,从而创建隐式依赖。这就是 Tuist 的用武之地。Tuist 提供了一个命令来通过静态分析项目代码来检查隐式依赖。以下命令将输出项目的隐式依赖:
tuist inspect dependencies --only implicit如果命令检测到任何隐式导入,它将以非零退出代码退出。
::: tip 在 CI 中验证
我们强烈建议每次向上游推送新代码时,将此命令作为
:::
::: warning 并非所有隐式情况都能被检测到
由于 Tuist 依赖静态代码分析来检测隐式依赖,它可能无法捕获所有情况。例如,Tuist 无法理解代码中通过编译器指令进行的条件导入。
:::