跳至內容

隱式匯入

為咗減輕用原始 Xcode 專案維護 Xcode 專案圖嘅複雜性,Apple 設計咗一套允許隱式定義依賴關係嘅建構系統。這意味著一個產品(例如一個應用程式)可以依賴一個框架,即使沒有明確聲明該依賴關係。喺小規模下,這無問題,但隨著專案圖變得更加複雜,隱式依賴可能會導致增量建構不可靠,或者影響基於編輯器嘅功能,例如預覽或代碼補全。

問題在於你無法阻止隱式依賴發生。任何開發者都可以喺佢哋嘅 Swift 代碼中加入 import 語句,從而創建隱式依賴。這就是 Tuist 派上用場嘅地方。Tuist 提供咗一個命令,通過靜態分析你專案中嘅代碼來檢查隱式依賴。以下命令將輸出你專案嘅隱式依賴:

bash
tuist inspect dependencies --only implicit

如果命令檢測到任何隱式匯入,它會以非零嘅退出碼結束。

喺 CI 中驗證

我哋強烈建議每次有新代碼推送到上游時,都將此命令作為你 持續整合 命令嘅一部分運行。

並非所有隱式情況都能被檢測到

由於 Tuist 依賴靜態代碼分析來檢測隱式依賴,它可能無法捕捉所有情況。例如,Tuist 無法理解通過代碼中嘅編譯器指令進行嘅條件匯入。