yonaskolb/xcodegen

A Swift command line tool for generating your Xcode project

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 17 minutes ago
Added to GitGenius on September 7th, 2026
Created on July 19th, 2017
Open Issues & Pull Requests: 405 (+0)
GitHub issues: Enabled
Number of forks: 904
Total Stargazers: 8,763 (+0)
Total Subscribers: 101 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 7.0 days
Mean response time: 166.8 days
90th percentile: 401.4 days
Tracked items: 67

How this project is maintained

Around half of the issues opened in the past year never receive a reply. 100% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. Only 9% of issues opened in the past year have been closed. Three people close 64% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 60
New in 7 days: 1
Closed in 7 days: 0
Avg open age: 682 days
Stale 30+ days: 52
Stale 90+ days: 48

Recent activity

Opened in 7 days: 1
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 1

Top labels

  • enhancement (1)
  • question (1)

Detailed Description

XcodeGen is a command line tool for generating Xcode projects from a declarative specification.

The tool solves the problem of Xcode project file merge conflicts and manual project configuration by generating .xcodeproj files from a YAML or JSON specification. It parses your folder structure on disk and automatically references source files while preserving the directory hierarchy. The spec defines targets, configurations, schemes, build settings, and other project options, with sensible defaults applied so you only customize what differs from the standard setup. This allows you to remove .xcodeproj from version control entirely, regenerating it on demand or in CI environments.

Teams managing complex Xcode projects with multiple targets and shared build settings benefit most from this approach. It suits projects where the folder structure on disk should drive the project organization, and where configuration as code is preferable to GUI-based setup. The tool handles multi-platform frameworks and can integrate Carthage dependencies automatically. You can distribute the spec across multiple files for sharing and overriding, and generate environment-specific schemes without manual duplication.

The project maintains active development with regular updates and bug fixes. The tool is distributed through multiple installation channels including package managers, making it accessible to different workflow preferences. Documentation is comprehensive, covering both the project spec format and general usage patterns. The codebase is written in Swift and available as both a command line tool and as a library that can be imported into other Swift packages.