首页 > 解决方案 > Carthage 获取并构建不在我的 Cartfile 中的存储库

问题描述

仅供参考 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?

标签: iosxcodemacoscarthage

解决方案


当某人不是体验开发人员时,这是一个有效的问题。但是@pb​​m 是对的,许多框架本身都有依赖项,必须下载它们才能使您包含的框架工作。

为了抽象这种复杂性,我们有这些很好的依赖管理器,比如 Cocoapods、Carthage 和 SPM ☺️


推荐阅读