Swift 應用程式外掛程式與設定快取不相容。 |
Swift 應用程式外掛程式提供建置 Swift 應用程式的任務、設定和慣例。
使用
plugins {
`swift-application`
}
plugins {
id 'swift-application'
}
建置變異
Swift 應用程式外掛程式了解下列向度。請閱讀建置變異簡介以取得更多資訊。
- 建置類型 - 永遠是偵錯或發布
-
建置類型控制產生的二進位檔的可偵錯性和最佳化。
-
debug
- 產生偵錯符號,且不要最佳化二進位檔 -
release
- 產生偵錯符號並最佳化,但從二進位檔中萃取偵錯符號
-
- 目標機器 - 預設為建置主機
-
目標機器表示應用程式預期執行的機器。目標機器透過其作業系統和架構來識別。Gradle 使用目標機器來決定根據主機機器的可用性選擇哪個工具鏈。
目標機器可以設定如下
application {
targetMachines = listOf(machines.linux.x86_64, machines.macOS.x86_64)
}
application {
targetMachines = [
machines.linux.x86_64, machines.macOS.x86_64
]
}
任務
下圖顯示此外掛程式所新增任務之間的關係。

變異相關任務
Swift 應用程式外掛程式會根據應用程式元件的變異來建立任務。請閱讀建置變異簡介以取得更多資訊。下圖顯示變異相關任務之間的關係。

compileVariantSwift
(例如compileDebugSwift
和compileReleaseSwift
) - SwiftCompile-
相依性:所有將原始檔提供給編譯的任務 :: 使用所選編譯器編譯 Swift 原始檔。
linkVariant
(例如linkDebug
和linkRelease
) - LinkExecutable-
相依性:所有提供給連結可執行檔的任務,包括來自透過專案相依性解析的專案的
linkVariant
和createVariant
任務 :: 使用所選連結器從已編譯的物件檔連結可執行檔。 installVariant
(例如installDebug
和installRelease
) - InstallExecutable-
相依性:
linkVariant
和所有提供給可執行檔執行期的任務,包括來自透過專案相依性解析的專案的linkVariant
任務 :: 安裝可執行檔及其所有執行期相依性,以便輕鬆執行。 assembleVariant
(例如assembleDebug
和assembleRelease
) - 任務(生命週期)-
相依性:
linkVariant
:: 彙總組裝此應用程式特定變異的任務。
生命週期任務
Swift 應用程式外掛程式會將部分任務附加到 基本外掛程式章節 中記載的標準生命週期任務,而 Swift 應用程式外掛程式會自動套用這些任務
組建
- 任務(生命週期)-
依賴:
連結偵錯
:: 匯總任務,用於組建專案中目前主機(如果存在)的應用程式偵錯變體。此任務由 基本外掛程式 新增。 檢查
- 任務(生命週期)-
匯總任務,用於執行驗證任務,例如執行測試。有些外掛程式會將自己的驗證任務新增到
檢查
。例如,XCTest 外掛程式 會將任務附加到此生命週期任務以執行測試。此任務由 基本外掛程式 新增。 建置
- 任務(生命週期)-
依賴:
檢查
、組建
:: 匯總任務,用於執行專案的完整建置。此任務由 基本外掛程式 新增。 清除
- 刪除-
刪除建置目錄及其中的所有內容,也就是專案屬性
layout.buildDirectory
指定的路徑。此任務由 基本外掛程式 新增。
相依性管理
就像 Swift 應用程式外掛程式建立的任務一樣,會根據應用程式元件的變體建立多重組態。請閱讀 建置變體簡介 以取得更多資訊。下圖說明 Swift 應用程式外掛程式新增的組態

-
白色組態是使用者用來宣告相依性的組態
-
粉紅色組態,也稱為可消耗組態,標示為 (C),是元件對應程式庫執行時使用的組態
-
藍色組態,也稱為可解析組態,標示為 (R),是元件內部使用的組態
下列組態用於宣告相依性
實作
-
用於宣告主要元件所有變體的實作相依性。您應該在此宣告任何變體的相依性。
main變體實作
(例如mainDebug實作
和mainRelease實作
)延伸實作
-
用於宣告主要元件特定變體的實作相依性。您應該在此宣告特定變體的相依性。
下游消費者所使用的組態,取決於應用程式元件
變數RuntimeElements
(例如debugRuntimeElements
和releaseRuntimeElements) 延伸 `main變數Implementation
-
用於執行應用程式。此組態供消費者使用,以擷取執行應用程式所需的所有元素。
應用程式本身所使用的組態如下
swiftCompile變數
(例如swiftCompileDebug
和swiftCompileRelease
)延伸main變數Implementation
-
用於編譯應用程式。此組態包含應用程式的編譯包含根目錄,因此在呼叫 Swift 編譯器來編譯應用程式時會使用此組態。
nativeLink變數
(例如nativeLinkDebug
和nativeLinkRelease
)延伸main變數Implementation
-
用於連結應用程式。此組態包含應用程式的函式庫,因此在呼叫 Swift 連結器來連結應用程式時會使用此組態。
nativeRuntime變數
(例如nativeRuntimeDebug
和nativeRuntimeRelease
)延伸main變數Implementation
-
用於執行應用程式。此組態包含應用程式的執行時期函式庫。
慣例
Swift 應用程式外掛程式會新增來源和工作慣例,如下所示。
專案配置
Swift 應用程式外掛程式假設專案配置如下所示。這些目錄都不需要存在或包含任何內容。Swift 應用程式外掛程式會編譯它找到的任何內容,並忽略任何遺失的內容。
src/main/swift
-
Swift 來源,副檔名為
.swift
您可以透過在 application
腳本區塊中設定 source
來設定專案配置。
compile變數Swift
工作
Swift 應用程式外掛程式會為應用程式元件的每個變數新增 SwiftCompile 執行個體,以進行建置(例如 compileDebugSwift
和 compileReleaseSwift
)。請閱讀 建置變數簡介 以取得更多資訊。以下是部分最常見的設定選項。
compilerArgs |
[] |
debuggable |
|
modules |
|
巨集 |
[] |
objectFileDir |
|
已最佳化 |
|
來源 |
|
targetPlatform |
從二進位檔的 |
toolChain |
linkVariant
任務
Swift 應用程式外掛程式會為應用程式的每個變異新增一個 LinkExecutable 實例,例如 linkDebug
和 linkRelease
。請閱讀 建置變異簡介 以取得更多資訊。以下是部分最常見的設定選項。
debuggable |
|
libs |
|
linkedFile |
|
linkerArgs |
[] |
來源 |
|
targetPlatform |
從二進位檔的 |
toolChain |
installVariant
任務
Swift 應用程式外掛程式會為測試元件的每個變異新增一個 InstallExecutable 實例,例如 installDebug
和 installRelease
。請閱讀 建置變異簡介 以取得更多資訊。無需設定任務上的任何屬性。