Where Does Carthage Put Frameworks and Caches?
Carthage builds frameworks into Carthage/Build beside your project, with sources in Checkouts and a global download cache.
Last updated
Carthage keeps everything visible inside your project folder. Carthage/Checkouts holds dependency sources, Carthage/Build the compiled frameworks or xcframeworks you drag into Xcode. Cartfile lists wants, Cartfile.resolved pins exact versions including nested deps. Commit the resolved file, ignore the rest.
Two caches speed repeat builds: hidden .Project.version files in Build let --cache-builds skip unchanged platforms, and a global download cache in ~/Library/Caches/org.carthage.CarthageKit avoids refetching binaries. Stale upgrades that change nothing almost always trace to that global cache. Clear both and re-resolve.
Where Carthage stores this, by platform
<project root>/Carthage/Build
Built frameworks per platform here, sources in sibling Checkouts. Global binary cache at ~/Library/Caches/org.carthage.CarthageKit. Remove both caches when version bumps appear to do nothing.
Frequently asked questions
Should I commit the Carthage folder?
Commit Cartfile.resolved always. Committing Carthage/Build guarantees historical builds at the cost of huge repos; most teams ignore Build and Checkouts and rebuild from the resolved file. Version files inside Build only matter with --cache-builds.
Carthage upgrade changed nothing, what is stale?
The global download cache. Run rm -rf ~/Library/Caches/org.carthage.CarthageKit Carthage/ and carthage update again. First resolves after clearing can race creating Build, so rerun once if it errors midway.
Notice an outdated path? Let us know.