📦 Carthage for Swift:去中心化依赖管理器
\n\nCarthage 是一个面向 Apple 生态系统(iOS、macOS、tvOS、watchOS)的去中心化依赖管理器。与 CocoaPods 不同,Carthage 不会自动修改项目——它会构建框架,而您需要手动将它们连接到 Xcode。这为您提供了对构建过程的完全控制,并且几乎没有“魔法”。
\n\n该库使用 Carthage(名称与工具本身相同)并通过 Cartfile 工作——这是一个声明式文件,用于列出依赖项。Carthage 会克隆仓库,构建它们(使用 xcodebuild),并将生成的 .framework 文件放入 Carthage/Build 文件夹。您需要手动将它们添加到项目中。
为什么需要 Carthage?如果您重视透明度、希望避免版本冲突,并且不喜欢工具自动修改您的项目,那么 Carthage 是理想选择。它非常适合那些每个成员自行决定如何连接依赖项的团队,以及具有严格构建安全要求的项目。
\n\n\n\n
1. 安装 Carthage
\n\n您可以通过 Homebrew(推荐)安装 Carthage,或者从 GitHub 下载 .pkg 文件。
\n\n# 通过 Homebrew 安装\nbrew install carthage\n\n# 检查版本\ncarthage version\n\n如果尚未安装 Homebrew,请先安装它:/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Linux 或 Windows 官方不支持 Carthage(仅限 macOS)。
\n\n\n\n
2. 快速入门——最小工作示例
\n\n创建一个新的 Xcode 项目(例如 Single View App)。然后在项目根目录下创建一个名为 Cartfile(无扩展名)的文件,并添加依赖项:
\n\n# Cartfile\ngithub "Alamofire/Alamofire" ~> 5.8\n\n现在,在终端中(从项目文件夹)执行以下命令:
\n\ncarthage update --platform iOS\n\n完成后,在 Carthage/Build/iOS 文件夹中会出现 Alamofire.framework。打开 Xcode,将此 .framework 文件拖放到目标(target)的 Frameworks, Libraries, and Embedded Content 部分。选择“Embed & Sign”。
现在可以导入该库:
\n\nimport Alamofire\n\n// 最小请求示例\nAF.request("https://api.github.com/users/defunkt").response { response in\n debugPrint(response)\n}\n\n完成!您刚刚通过 Carthage 连接了一个依赖项。
\n\n\n\n
3. Carthage 的主要方法和功能
\n\n以下是 Carthage 的关键命令和功能。大多数命令在终端中调用。
\n\n🔹 1. carthage update
\n 签名 carthage update [--platform PLATFORM] [--configuration CONFIG] [--no-build] [--use-xcframeworks]
功能: 下载并构建 Cartfile.resolved 中的所有依赖项(如果 Cartfile.resolved 不存在,则更新到最新版本)。创建 Carthage/Build 文件夹。
\n# 仅针对 iOS 更新,使用 xcframeworks\ncarthage update --platform iOS --use-xcframeworks\n🔹 2. carthage bootstrap
\n 签名 carthage bootstrap [--platform PLATFORM] [--configuration CONFIG] [--use-xcframeworks]
功能: 使用现有的 Cartfile.resolved 构建依赖项(不更新版本)。非常适合 CI/CD——确保构建的可重复性。
\n# 重新构建所有内容,如