问题描述
仅供参考 Xcode 12.3,Mac M1。
当我运行 Carthage 命令carthage update --platform iOS时,Carthage 获取了一个不在 Cartfile 中的存储库。你能解释一下原因吗?
为了调试这个,我卸载了 Carthage,清理了缓存等,然后重新安装。
以下是显示详细信息的终端日志。请注意,如下所示的 Cartfile 不包含 CocoaLumberjack,但 Carthage 仍会获取它。请注意,在先前版本的 Cartfile 中包含 Cocoalumberjack。
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"
为什么获取的 Cartfile 中没有 repo?
解决方法
愚蠢的问题 - SVGKit 依赖于 CocoaLumberjack
,当有人不是体验开发人员时,这是一个有效的问题。但是@pbm 是对的,许多框架本身都有依赖项,必须下载它们才能使您包含的框架正常工作。
为了抽象这种复杂性,我们有这些很好的依赖管理器,如 Cocoapods、Carthage 和 SPM ☺️