- Notifications
You must be signed in to change notification settings - Fork24
፨ A Swift Package with data structures to model Xcode workspaces and projects
License
tuist/XcodeGraph
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
XcodeGraph is a Swift Package that contains data structures to model an Xcode projects graph.It was initially developed as part ofTuist and extracted to be Tuist-agnostic.
Note
We extracted the graph data structures from Tuist to commoditize them and make them available to other projects that might need to model and generate Xcode projects.
To installXcodeGraph
, you can add it to your project or package'sPackage.swift
:
letpackage=Package( dependencies:[.package(url:"https://github.com/tuist/XcodeGraph.git",.upToNextMajor(from:"0.7.0")),],)
XcodeGraphMapper parses.xcworkspace
or.xcodeproj
files usingXcodeProj
and constructs aXcodeGraph.Graph
representing their projects, targets, and dependencies:
import XcodeGraphMapperletmapper:XcodeGraphMapping=XcodeGraphMapper()letpath=tryAbsolutePath(validating:"/path/to/MyProjectOrWorkspace")letgraph=tryawait mapper.map(at: path)// You now have a Graph containing projects, targets, packages, and dependencies.*// Example: print all target names across all projects*forprojectin 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.
Thanks goes to these wonderful people (emoji key):
Dariusz Rybicki 💻 | Binlogo 💻 | Filip Racki 💻 | Gabriel Liévano 💻 | Giovanni Filaferro 💻 | Anton Kolchunov 💻 |
This project follows theall-contributors specification. Contributions of any kind welcome!
About
፨ A Swift Package with data structures to model Xcode workspaces and projects