Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. iOS
  3. Carthage

Carthage

NOASSERTIONSwift0.40.0

A simple, decentralized dependency manager for Cocoa and Swift that builds frameworks and leaves project integration to the developer.

GitHubGitHub
15.2k stars1.5k forks0 contributors

What is Carthage?

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.

Target Audience

iOS, macOS, tvOS, and watchOS developers who prefer a lightweight, non-intrusive dependency manager that integrates seamlessly with their existing Xcode workflow.

Value Proposition

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.

Overview

A simple, decentralized dependency manager for Cocoa

Use Cases

Best For

  • Managing Swift and Objective-C dependencies in Xcode projects
  • Projects that require control over framework integration and build settings
  • Teams preferring a decentralized dependency management approach
  • Building multi-platform frameworks as XCFrameworks
  • Integrating prebuilt binary frameworks to speed up build times
  • Projects that already use Git submodules for dependency management

Not Ideal For

  • Projects needing automatic Xcode project integration with zero manual configuration
  • Teams that rely on a centralized package registry for easy dependency discovery and updates
  • Developers working on iOS projects targeting versions earlier than 8, as Carthage only supports dynamic frameworks from iOS 8 onwards

Pros & Cons

Pros

Decentralized Architecture

Carthage fetches dependencies directly from Git repositories like GitHub, avoiding a central package registry and reducing maintenance overhead, as emphasized in its philosophy.

Framework Flexibility

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.

Binary Caching for Speed

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.

Developer Control

Does not modify Xcode projects or build settings automatically, giving developers full control over integration, which aligns with its unintrusive design philosophy.

Cons

Manual Integration Burden

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.

Limited Dependency Discovery

Lacks a centralized package list, making it harder to find new libraries without external resources, as acknowledged in the differences from CocoaPods section.

Build and Debugging Issues

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.

Open Source Alternative To

Carthage is an open-source alternative to the following products:

CocoaPods
CocoaPods

CocoaPods is a dependency manager for Swift and Objective-C Cocoa projects that manages library dependencies in Xcode projects.

Frequently Asked Questions

Quick Stats

Stars15,209
Forks1,545
Contributors0
Open Issues193
Last commit7 months ago
CreatedSince 2014

Tags

#dependency-manager#ios#framework#cocoa#package-management#package-manager#decentralized#swift#xcode#carthage#macos

Included in

iOS51.7kSwift26.0k
Auto-fetched 1 day ago

Related Projects

CocoaPodsCocoaPods

The Cocoa Dependency Manager.

Stars14,810
Forks2,686
Last commit1 month ago
swift-package-managerswift-package-manager

The Package Manager for the Swift Programming Language

Stars10,131
Forks1,455
Last commit2 days ago
swift-package-managerswift-package-manager

The Package Manager for the Swift Programming Language

Stars10,131
Forks1,455
Last commit2 days ago
MintMint

A package manager that installs and runs executable Swift packages

Stars2,497
Forks134
Last commit3 months ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub