A tool to document and manage Xcode versions for projects and systems, ensuring consistent builds across teams.
xcenv is a command-line tool that manages multiple Xcode installations and ensures projects use the correct Xcode version. It solves the problem of build inconsistencies when teams work with different Xcode versions or naming conventions by providing a standardized way to specify and switch Xcode environments per project.
iOS and macOS developers working on multiple projects, teams collaborating on codebases that require specific Xcode versions, and developers who need to maintain compatibility with older Xcode releases.
Developers choose xcenv because it integrates Xcode version management directly into the project workflow, eliminates manual `xcode-select` or `DEVELOPER_DIR` hacks, and allows version requirements to be tracked in source control for reproducibility.
Groom your Xcode environment.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Allows setting Xcode versions per project using a .xcode-version file that can be tracked in source control, ensuring build consistency across commits. This is highlighted in the README as a core feature for team synchronization.
Supports exact version numbers and regular expressions (e.g., '7.3+') to match Xcode bundles, accommodating various naming conventions across teams. The README demonstrates this with examples for matching app bundles.
Intercepts Xcode-related commands like xcodebuild and xcrun, as well as third-party tools like Fastlane and CocoaPods, to inject the correct Xcode version. The README lists specific tools it works with, ensuring broad compatibility.
Chooses versions based on environment variables (DEVELOPER_DIR, XCENV_VERSION), local project files, or global settings, providing flexible override options. The README details the order of precedence for version selection.
The README states 'More Details To Come' for plugins, indicating that this extensibility feature is not fully documented or implemented, limiting custom command additions.
Relies on Spotlight (mdfind) to locate Xcode.app, which can fail if Spotlight indexing is disabled or if Xcode is installed in a non-standard location, potentially causing version resolution issues.
Shim-based execution can interfere with other tools or scripts, and the need to run 'xcenv rehash' after Xcode updates adds maintenance steps, as noted in the command reference for shim management.