Manifest Types
Tuist supports three main manifest files:Project.swift
Defines a single Xcode project with targets, schemes, and settings
Workspace.swift
Groups multiple projects into an Xcode workspace
Tuist.swift
Global configuration and shared settings (formerly Config.swift)
Project.swift
TheProject.swift manifest defines an Xcode project and its targets.
Basic Structure
Key Components
- Targets
- Dependencies
- Sources & Resources
- Build Settings
- Schemes
Targets define buildable components:Product types:
.app- Application.framework- Dynamic framework.staticFramework- Static framework.staticLibrary- Static library.unitTests- Unit test bundle.uiTests- UI test bundle.appExtension- App extension.watch2App- watchOS app
Advanced Features
Target Scripts
Target Scripts
Add custom build phases:
Foreign Builds
Foreign Builds
Wrap non-Xcode build systems (KMP, Rust, etc.):
Resource Synthesizers
Resource Synthesizers
Generate code for resources:Access generated code:
Workspace.swift
TheWorkspace.swift manifest groups multiple projects into an Xcode workspace.
When to Use Workspaces
When to Use Workspaces
Use
Workspace.swift when you need to:- Group multiple independent projects
- Share schemes across projects
- Organize a large codebase into modules
- Include documentation or non-project files
If you only have one
Project.swift, Tuist automatically generates a workspace - you don’t need Workspace.swiftTuist.swift (Config)
TheTuist.swift manifest (formerly Config.swift) provides global configuration that applies to all projects in your workspace.
Configuration Options
- Generation
- Cache
- Plugins
- Compatibility
Control how projects are generated:
Project Helpers
Create reusable manifest helpers inTuist/ProjectDescriptionHelpers/:
Best Practices
One Project Per Module
One Project Per Module
Split large apps into focused projects:
Use Type-Safe Helpers
Use Type-Safe Helpers
Leverage Swift’s type system:
Environment Variables
Environment Variables
Use environment variables for sensitive data:
.env
Next Steps
Generated Projects
Learn how manifests become Xcode projects
Workspaces
Organize multi-project workspaces
Architecture
Understand Tuist’s architecture
API Reference
Complete manifest API documentation