፨ XcodeGraph
XcodeGraph is a Swift Package that contains data structures to model an Xcode projects graph. It was initially developed as part of Tuist and extracted to be Tuist-agnostic.
IMPORTANT
This package has been merged into the tuist/tuist monorepo.
Installation
To install XcodeGraph, you can add it to your project or package's Package.swift:
let package = Package(
dependencies: [
.package(url: "https://github.com/tuist/XcodeGraph.git", .upToNextMajor(from: "0.7.0")),
],
)XcodeGraphMapper
XcodeGraphMapper parses .xcworkspace or .xcodeproj files using XcodeProj and constructs a XcodeGraph.Graph representing their projects, targets, and dependencies:
Usage
import XcodeGraphMapper
let mapper: XcodeGraphMapping = XcodeGraphMapper()
let path = try AbsolutePath(validating: "/path/to/MyProjectOrWorkspace")
let graph = try await mapper.map(at: path)
// You now have a Graph containing projects, targets, packages, and dependencies.*
// Example: print all target names across all projects*
for project in graph.projects.values {
for (targetName, _) in project.targets {
print("Found target: \(targetName)")
}
}Once you have the Graph, you can explore or transform it as needed—printing targets, analyzing dependencies, generating reports, or integrating into other build tools.
Contributors ✨
Thanks goes to these wonderful people (emoji key):
Dariusz Rybicki 💻 | Binlogo 💻 | Filip Racki 💻 | Gabriel Liévano 💻 | Giovanni Filaferro 💻 | Anton Kolchunov 💻 | Alex Maimescu 💻 |
This project follows the all-contributors specification. Contributions of any kind welcome!