Select XcodeGen for Xcode Project Generation

  • id: 0000011

Status

History

  • Will be Superseded by ADR-0000013 (2026-09-17) by: @clsource

  • Accepted (2026-08-17) by: @clsource

Context and Problem Statement

ADR-0000009 chose Swift for Xcode related CLI tools. This ADR refines that decision by selecting XcodeGen for project generation. How should the project generation be handled?

Considered Options

Decision Outcome

Chosen option: "XcodeGen", because it is mature, widely adopted, uses a simple YAML-based configuration (Project.yml), and integrates well with CLI-driven workflows. Positive consequences: declarative project definitions, reproducible builds, easy templating via plugins. Negative consequences: none significant.

XcodeGen is the best fit for our needs. Tuist is powerful but heavier and introduces its own Swift DSL, adding complexity. Xcake is less maintained and has a smaller community.

Diagram

Diagram