
using-tuist-generated-projects
Guides day-to-day work in Tuist-generated Xcode workspaces, including generation, build and test commands, and buildable folders. Use when working in a Tuist-generated project or when users mention tuist generate, xcodebuild test, or generated workspaces.
- Installs
- 597
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/tuist/agent-skills --skill using-tuist-generated-projects- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads using-tuist-generated-projects automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Using Tuist Generated Projects
Quick Start
# Generate workspace without opening Xcode
tuist generate --no-open
# Build a scheme with xcodebuild
xcodebuild build -workspace App.xcworkspace -scheme App
# Run tests with xcodebuild
xcodebuild test -workspace App.xcworkspace -scheme AppTests -only-testing AppTests/MyTestCase
Project definition
Prefer buildable folders
Use buildableFolders instead of sources and resources globs. Buildable folders stay synchronized with the file system, so adding or removing files does not require regeneration.
let target = Target(
name: "App",
buildableFolders: [
"App/Sources",
"App/Resources",
]
)
Tag targets for focus
Use target tags to group areas of the project, for example:
tag:team:*tag:feature:*tag:layer:*
These tags make it easier to scope generation and testing later.
Example target metadata with tags:
let target = Target(
name: "PaymentsUI",
metadata: .metadata(tags: [
"tag:team:commerce",
"tag:feature:payments",
"tag:layer:ui",
])
)
When working on a focused area, generate only what you need:
tuist generate tag:feature:payments
tuist generate PaymentsUI PaymentsTests
Align build configurations
Keep build configurations aligned between the project and external dependencies. Use PackageSettings(settings: .settings(configurations: [])) to mirror project configurations; mismatches emit warnings.
Workflows
Generate intentionally
- Use
tuist generate --no-openin automation and scripts to avoid launching Xcode. - Regenerate when any manifest changes (or the dependency graph changes).
- If generation fails due to missing products, run
tuist installto resolve dependencies and retry.
Build with xcodebuild
Use xcodebuild build against the generated workspace and scheme.
xcodebuild build \
-workspace App.xcworkspace \
-scheme App \
-destination "generic/platform=iOS Simulator"
Test with xcodebuild
Use xcodebuild test for running tests locally. Prefer it over tuist test because tuist test regenerates the project on each invocation, which slows down iteration.
To optimize test run time:
- Use
--only-testingto run only the specific test suite or test case you are working on, instead of the full target. - Pick the scheme with the fewest compilation targets that still includes the test target you need. This minimizes build time before tests run.
# Run a specific test suite
xcodebuild test \
-workspace App.xcworkspace \
-scheme AppTests \
-only-testing AppTests/MyTestSuite
# Run a single test case
xcodebuild test \
-workspace App.xcworkspace \
-scheme AppTests \
-only-testing AppTests/MyTestSuite/testMyFunction
Guidelines
- Keep
buildableFolderspaths aligned to the target's real file system layout. - Avoid overlapping
buildableFolderswithsourcesorresourcesglobs in the same target. - Open Xcode manually when needed after running
tuist generate --no-open.
Troubleshooting
Static side effects warnings: adjust product types deliberately. Use Target.product for local targets and PackageSettings(productTypes:) for external products. Making everything dynamic with .framework can compile and run, but it may hurt launch time. Prefer static products (static frameworks or libraries) when possible and when they do not introduce side effects.
Objective-C dependency crashes: add -ObjC or -force_load via OTHER_LDFLAGS on consuming targets as needed. Reference: https://tuist.dev/en/docs/guides/features/projects/dependencies#objectivec-dependencies.
FAQ
What does the using-tuist-generated-projects skill do?
Guides day-to-day work in Tuist-generated Xcode workspaces, including generation, build and test commands, and buildable folders. Use when working in a Tuist-generated project or when users mention tuist generate, xcodebuild test, or generated workspaces.
How do I install using-tuist-generated-projects?
Run npx skills add https://github.com/tuist/agent-skills --skill using-tuist-generated-projects in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/using-tuist-generated-projects/ (personal) or .claude/skills/using-tuist-generated-projects/ (project).
Which AI agents can use using-tuist-generated-projects?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is using-tuist-generated-projects safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains using-tuist-generated-projects?
It is published by tuist in tuist/agent-skills. It has 597 recorded installs.
More from tuist/agent-skills
debug-generated-project
tuist/agent-skills
Debugs issues users encounter with Tuist-generated projects by reproducing the scenario locally, building Tuist from source when needed, and triaging whether it is a bug, misconfiguration, or something that needs team input. Use when users report generation failures, build errors after generation, or unexpected project behavior.
fix-flaky-tests
tuist/agent-skills
Fixes flaky tests by analyzing failure patterns from Tuist test insights, identifying root causes, and applying targeted corrections. Can be invoked with a specific test case URL (e.g. https://tuist.dev/{account}/{project}/tests/test-cases/{id}) or without arguments to discover and fix all flaky tests in the project.
migrating-to-tuist-generated-projects
tuist/agent-skills
Migrates existing Xcode projects to Tuist generated workspaces with build and run validation, external dependency mapping, and migration checklists. Use when adopting Tuist for an existing app or converting a hand-edited Xcode project to generated projects.
compare-builds
tuist/agent-skills
Open the skill to read its SKILL.md instructions.
analyze-selective-testing
tuist/agent-skills
Open the skill to read its SKILL.md instructions.
compare-generations
tuist/agent-skills
Open the skill to read its SKILL.md instructions.
Popular testing & qa skills
tdd
mattpocock/skills
Test-driven development. Use when the user wants to build features or fix bugs test-first, mentions "red-green-refactor", or wants integration tests.
grilling
mattpocock/skills
Grill the user relentlessly about a plan, decision, or idea. Use when the user wants to stress-test their thinking, or uses any 'grill' trigger phrases.
migrate-to-shoehorn
mattpocock/skills
Migrate test files from as type assertions to @total-typescript/shoehorn. Use when user mentions shoehorn, wants to replace as in tests, or needs partial test data.
run-train
lllllllama/rigorpilot-skills
Rigor Train skill for deep learning research repositories. Use when a documented or selected training command should be run conservatively for startup verification, short-run verification, full kickoff, or resume, with command, config, seed, log, checkpoint, status, and metric evidence written to standardized trainoutputs/. Do not use for environment setup, exploratory sweeps, speculative idea implementation, or end-to-end orchestration.
test-driven-development
obra/superpowers
Use when implementing any feature or bugfix, before writing implementation code
finishing-a-development-branch
obra/superpowers
Use when implementation is complete, all tests pass, and you need to decide how to integrate the work