A simple, decentralized dependency manager for Cocoa and Swift that builds frameworks and leaves project integration to the developer.
Carthage is a dependency manager for Cocoa and Swift applications. It fetches and builds project dependencies into binary frameworks, but unlike other tools, it does not automatically integrate them into your Xcode project, giving developers full control over their project setup.
iOS, macOS, tvOS, and watchOS developers who prefer a lightweight, non-intrusive dependency manager that integrates seamlessly with their existing Xcode workflow.
Developers choose Carthage for its simplicity, decentralized approach, and because it avoids modifying project files automatically, offering greater flexibility and control compared to centralized alternatives.
A simple, decentralized dependency manager for Cocoa
Carthage fetches dependencies directly from Git repositories like GitHub, avoiding a central package registry and reducing maintenance overhead, as emphasized in its philosophy.
Builds dependencies into dynamic or static frameworks, including modern XCFrameworks for cross-platform compatibility, which is crucial for Apple Silicon support from version 0.37.0.
Can download prebuilt frameworks from GitHub Releases to skip compilation, significantly speeding up build times when binaries are available, as detailed in the archive prebuilt frameworks section.
Does not modify Xcode projects or build settings automatically, giving developers full control over integration, which aligns with its unintrusive design philosophy.
Requires developers to manually drag frameworks into Xcode, set up run script phases, and manage file lists, which can be error-prone and time-consuming compared to automated tools.
Lacks a centralized package list, making it harder to find new libraries without external resources, as acknowledged in the differences from CocoaPods section.
Known problems like the DWARFs symbol problem can prevent debugging on other machines, and Swift version mismatches may force builds from source or cause failures.
Carthage is an open-source alternative to the following products:
The Cocoa Dependency Manager.
The Package Manager for the Swift Programming Language
The Package Manager for the Swift Programming Language
A package manager that installs and runs executable Swift packages
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.