server/priv/docs/zh_Hant/guides/features/projects/dynamic-configuration.md
在某些情況下,您可能需要在專案產生時動態設定專案。例如,您可能想要根據專案產生的環境來變更應用程式名稱、bundle 識別碼或部署目標。Tuist 可透過環境變數支援此功能,您可以從艙單檔案存取這些變數。
Tuist 允許透過可以從艙單檔存取的環境變數來傳遞設定。例如
TUIST_APP_NAME=MyApp tuist generate
如果要傳輸多個環境變數,只需用空格分隔即可。例如
TUIST_APP_NAME=MyApp TUIST_APP_LOCALE=pl tuist generate
變數可以使用
<LocalizedLink href="/references/project-description/enums/environment">環境</LocalizedLink>
類型來存取。任何遵循TUIST_XXX 定義在環境中或在執行指令時傳給 Tuist 的變數,都可以使用Environment
類型來存取。以下範例顯示我們如何存取TUIST_APP_NAME 變數:
func appName() -> String {
if case let .string(environmentAppName) = Environment.appName {
return environmentAppName
} else {
return "MyApp"
}
}
存取變數會回傳一個Environment.Value? 類型的實體,它可以取下列任何值:
| 案例 | 說明 |
|---|---|
.string(String) | 當變數代表字串時使用。 |
您也可以使用下面定義的任一個輔助方法擷取字串或布林環境 變數,這些方法需要傳入預設值,以確保使用者每次都能得到一致的結果。這可避免定義上文定義的函式
appName()。
::: code-group
Environment.appName.getString(default: "TuistServer")
Environment.isCI.getBoolean(default: false)
:::