跳至內容

隱式匯入

為了降低使用原始 Xcode 專案維護 Xcode 專案圖的複雜度,Apple 設計的建置系統允許以隱式方式定義相依性。這表示產品(例如 App)可以依賴某個 Framework,即使未明確宣告該相依性。在規模較小時,這不成問題,但隨著專案圖日益複雜,這種隱式特性可能導致增量建置不穩定,或影響預覽與程式碼完成等編輯器功能。

問題在於你無法防止隱式相依性發生。任何開發者都能在 Swift 程式碼中加入 import 陳述式,進而產生隱式相依性。這時 Tuist 就派上用場了。Tuist 提供一個指令,可透過靜態分析專案中的程式碼來檢查隱式相依性。以下指令會輸出你專案中的隱式相依性:

bash
tuist inspect dependencies --only implicit

如果指令偵測到任何隱式匯入,它會以非零的結束碼退出。

在 CI 中驗證

我們強烈建議每次將新程式碼推送至上游時,都將此指令作為 持續整合 流程的一部分執行。

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

由於 Tuist 仰賴靜態程式碼分析來偵測隱式相依性,因此可能無法涵蓋所有情況。例如,Tuist 無法理解透過程式碼中的編譯器指示詞進行的條件式匯入。