动态配置
动态配置 {#dynamic-configuration}
Section titled “动态配置 {#dynamic-configuration}”在某些情况下,你可能需要在生成时动态配置项目。例如,你可能想根据生成项目的环境更改应用名称、bundle 标识符或部署目标。Tuist 通过环境变量支持此功能,可以从清单文件中访问。
通过环境变量配置 {#configuration-through-environment-variables}
Section titled “通过环境变量配置 {#configuration-through-environment-variables}”Tuist 允许通过环境变量传递配置,可以从清单文件中访问。例如:
TUIST_APP_NAME=MyApp tuist generate如果要传入多个环境变量,只需用空格分隔。例如:
TUIST_APP_NAME=MyApp TUIST_APP_LOCALE=pl tuist generate从清单中读取环境变量 {#reading-the-environment-variables-from-manifests}
Section titled “从清单中读取环境变量 {#reading-the-environment-variables-from-manifests}”可以使用 Environment 类型访问变量。任何遵循 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) | 当变量表示字符串时使用。 |
你也可以使用下面定义的辅助方法检索字符串或布尔类型的 Environment 变量,这些方法需要传入默认值以确保用户每次都能获得一致的结果。这样就不需要定义上面定义的 appName() 函数。
::: code-group
Environment.appName.getString(default: "TuistServer")Environment.isCI.getBoolean(default: false):::