FYI Xcode 12.3, Mac M1.
When I run the Carthage command carthage update –platform iOS, Carthage fetches a repository that is not in the Cartfile. Can you please explain why?
To debug this I’ve uninstalled Carthage, cleaned cache etc, then reinstalled.
The following is a terminal log showing details. Note the Cartfile, shown below, does not contain CocoaLumberjack but Carthage still fetches it. Note that in a previous version of the Cartfile Cocoalumberjack was included.
paul@Pauls-Mac-mini nannup % brew uninstall carthage
Uninstalling /opt/homebrew/Cellar/carthage/0.36.1... (8 files, 7.4MB)
paul@Pauls-Mac-mini nannup % brew uninstall --force carthage
paul@Pauls-Mac-mini nannup % sudo rm -rf ~/Library/Caches/carthage
Password:
paul@Pauls-Mac-mini nannup % ls -al /usr/local/bin/Cathage
ls: /usr/local/bin/Cathage: No such file or directory
paul@Pauls-Mac-mini nannup % brew install carthage
Updating Homebrew...
==> Downloading https://homebrew.bintray.com/bottles/carthage-0.36.1.arm64_big_sur.bottle.tar.gz
Already downloaded: /Users/paul/Library/Caches/Homebrew/downloads/3bafbfa7dcc8f2622063f9e7fdd0120c68f04fc5efa14d5bbd2f49695b9b011c--carthage-0.36.1.arm64_big_sur.bottle.tar.gz
==> Pouring carthage-0.36.1.arm64_big_sur.bottle.tar.gz
==> Caveats
zsh completions have been installed to:
/opt/homebrew/share/zsh/site-functions
==> Summary
🍺 /opt/homebrew/Cellar/carthage/0.36.1: 8 files, 7.4MB
paul@Pauls-Mac-mini nannup % xcodebuild -version
Xcode 12.3
Build version 12C33
paul@Pauls-Mac-mini nannup % cat Cartfile
github "devxoul/Toaster" == 2.3.0
github "SVGKit/SVGKit" "3.x"
paul@Pauls-Mac-mini nannup % rm -rf Carthage
paul@Pauls-Mac-mini nannup % rm -rf Cartfile.resolved
paul@Pauls-Mac-mini nannup % ls
Cartfile Nannup Nannup.xcodeproj T-Nannup carthage.sh contributors.txt libs
paul@Pauls-Mac-mini nannup % carthage update --platform iOS
*** Fetching Toaster
*** Fetching SVGKit
*** Fetching CocoaLumberjack
*** Checking out CocoaLumberjack at "3.7.0"
*** Checking out SVGKit at "11b6d774d2710a8b1c0493146be5d56e56961946"
*** Checking out Toaster at "2.3.0"
Why is a repo not in the Cartfile being fetched?
2
Answers
Dumb question - SVGKit has a dependency on CocoaLumberjack
This is a valid question when somebody is not an experience developer. But @pbm is right, many frameworks have dependencies theirselves and they have to be downloaded to make the framework work that you include.
To abstract this complexity we have these nice dependency managers like Cocoapods, Carthage and SPM ☺️