macOS
brew install xcdifflocal Homebrew formula metadata
brew
Tool to diff xcodeproj files. Version 0.14.0 via Homebrew; verified from local package data.
install
brew install xcdifflocal Homebrew formula metadata
overview
Tool to diff xcodeproj files
history
xcdiff is Bloomberg's Swift-based tool for comparing Xcode project files. Its README describes it as an extensible "git diff for .xcodeproj files", usable both as a command-line program and as a library for custom tools.
The project appeared publicly in the Xcode project-generation era, when teams increasingly used tools such as XcodeGen and Tuist to generate .xcodeproj files rather than editing them entirely by hand. Swift Package Index records xcdiff's first public release, 0.2.0, on 22 October 2019, and the GitHub releases page shows continued maintenance through the 0.14.0 release in September 2025.
xcdiff builds on other Swift/Xcode infrastructure instead of parsing project files in isolation. The README credits Tuist's XcodeProj library and Swift Package Manager's utility library, which places xcdiff in the same small ecosystem of tools that inspect, generate, or normalize Xcode project metadata.
The project is niche by design: it is aimed at teams that need to compare two generated or hand-maintained Xcode projects in a meaningful way. Swift Package Index lists xcdiff as an active package with one executable, two libraries, and roughly a thousand GitHub stars, indicating modest but real use among Swift and Apple-platform tooling users.
The canonical workflow is to run `xcdiff` in a directory containing two .xcodeproj files, or to pass two project paths explicitly with `-p1` and `-p2`. The README's main use case is migration to project generation: compare a generated project against the original one and inspect differences in targets, sources, headers, and related project structure.
Beyond the CLI, xcdiff exposes XCDiffCore as a Swift Package Manager dependency. That makes it useful for package-nerd workflows where a team wants project-file comparison inside another migration, review, or CI tool rather than only as terminal output.
Xcode projects are serialized as large property-list-like graphs, so ordinary text diffs are noisy and often misleading. xcdiff matters in its niche because it treats the project file as structured data, which helps teams review generated-project changes without hand-reading unstable .pbxproj ordering and identifiers.
security posture
narrow executable package without higher-risk signals.
green risk · low confidence · appliance
Before unattended agent use, check whether the tool reads plaintext credentials, writes remote state, publishes artifacts, or shells out to plugins.
executables
| Command | Kind | Exposure | Note |
|---|---|---|---|
xcdiff | cli | global executable |
freshness
These signals separate page generation age, package-manager activity, and upstream release comparison. Version lag is warned only when an evidence URL and comparable versions are present.
https://github.com/bloomberg/xcdiff
install metadata
| Package key | brew:xcdiff |
|---|---|
| Version | 0.14.0 |
| Package manager | Homebrew |
| Package manager page | https://formulae.brew.sh/formula/xcdiff |
| Homepage | https://github.com/bloomberg/xcdiff |
| Repository | https://github.com/bloomberg/xcdiff |
| Upstream docs | https://github.com/bloomberg/xcdiff#readme |
| License | Apache-2.0 |
| Source archive | https://github.com/bloomberg/xcdiff.git |
| Bottle | available (on arm64_sequoia, arm64_sonoma, arm64_tahoe, arm64_ventura, sonoma, ventura) |
| Homebrew post-install | not defined |
| Service | none declared |
registry facts
| Source Database | Homebrew formula API |
|---|---|
| Tap | homebrew/core |
| Full Name | xcdiff |
| Version Scheme | 0 |
| Revision | 0 |
| Head Version | HEAD |
| Requirements |
|
| Bottle Stable Root URL | https://ghcr.io/v2/homebrew/core |
| Deprecated | no |
| Disabled | no |
| Keg Only | no |
| URL Keys |
|
source trail
This page is generated by av-web from the private package SQLite artifact built by scripts/generate-pkg-sqlite.py.
View the package source record on GitHub.