Tuist can be configured through a
When Tuist is executed, it traverses up the directories to find a
Tuist directory that contains a
Defining a configuration manifest is not required but recommended to ensure a consistent behavior across all the projects that are part of the repository.
The example below shows a project that has a global
Config.swift file that will be used when Tuist is run from any of the subdirectories:
/.git.gitignore/Tuist/Config.swift # Configuration manifest/Framework/Project.swift/App/Project.swift
That way, when Tuist runs in any of the subdirectories, it'll use the root configuration.
The structure is similar to the project manifest. We need to create a root variable,
config of type
import ProjectDescription let config = Config( compatibleXcodeVersions: ["10.3"], swiftVersion: "5.4.0", generationOptions: [ .xcodeProjectName("SomePrefix-\(.projectName)-SomeSuffix"), .organizationName("Tuist"), .developmentRegion("de") ])
It allows configuring Tuist and share the configuration across several projects.
|Set the versions of Xcode that the project is compatible with.||No|
|The specified version of Swift that will be used by Tuist. When ||Version||No|
|Options to configure the generation of Xcode projects.||No|
This object represents the versions of Xcode the project is compatible with. If a developer tries to generate a project and its selected Xcode version is not compatible with the project, Tuist will yield an error:
|The project is compatible with any version of Xcode.|
|The project is compatible with a list of Xcode versions.|
ExpressibleByArrayLiteral and ExpressibleByStringLiteral
Note that 'CompatibleXcodeVersions' can also be initialized with a string or array of strings that represent the supported Xcode versions.
Generation options allow customizing the generation of Xcode projects.
|Customize the name of the generated .xcodeproj.|
|Customize the organization name of the generated .xcodeproj.|
|Customize the development region of the generated .xcodeproj. The default development region is |
|Generate only custom defined schemes, skip default auto generated schemes.|
|Suppress logging of environment in Run Script build phases.|
|Do not automatically synthesize resource accessors (assets, localized strings, etc.).|
|Enable code coverage for auto generated schemes.|
|Apply IDE Template macros to your project.|
|Resolve SPM dependencies using your system's SCM credentials, instead of Xcode accounts.|
|Disables locking Swift packages. This can speed up generation but does increase risk if packages are not locked in their declarations.|
|Disables generating Bundle accessors.|
Allows a string with interpolated properties to be specified. For example,
|The name of the current project.|
Allows you to define what targets will be enabled for code coverage data gathering.
|Gather code coverage data for all targets in workspace.|
|Enable code coverage for targets that have enabled code coverage in any of schemes in workspace.|
|Gather code coverage for specified target references.|