<“现在 Swift 有内置包管理器,CocoaPods 是否会停止开发?”
在撰写本文时,Swift 包管理器 (SPM) 处于“早期设计和开发”[1]阶段。它目前不支持 iOS、watch OS 或 Objective-C [2][3]。在 SPM 开发期间,CocoaPods 将继续开发,同时支持 Swift 和 Objective-C。随着 SPM 逐渐成熟,我们将评估 CocoaPods 和 CocoaPods 社区的最佳前进方向。
<“为什么不直接使用 git 子模块?”
CocoaPods 不是关于下载代码。虽然它确实会这样做,但这可以说是最不有趣的部分。
定义 CocoaPods 的是(交叉)依赖项解析、(语义)版本管理以及自动化“将其集成到 Xcode”部分。
最后,即使你只是在寻找下载器,也要考虑事实上除了 git 之外还有其他正在使用的 SCM。另一方面,CocoaPods 是不可知的,并且可以处理来自本地或 HTTP 位置的 Subversion、Mercurial 和 zip/tarball。
<“如何向 CocoaPods 捐款?”
TL;DR:虽然我们非常感谢你的心意,但该项目(作为一个实体)不接受财务捐款。我们对此有一个很棒的博客文章。
<“CocoaPods 不做 X,所以它不可用。”
首先,请参阅第 2 点,然后考虑,除非你告诉我们缺少的功能以及它为什么重要,否则它根本不会发生。我们不会在 Twitter 上搜索工作,因此请提交工单,或者更好的是,以拉取请求的形式提交。
<“CocoaPods 不做依赖项解析。”
CocoaPods 一直在进行依赖项解析,但在 0.35 版本之前,它缺乏自动冲突解决。截至目前,CocoaPods 可以解决任何可以解决的冲突。
<“CocoaPods 对社区有害,因为它让用户太容易添加许多依赖项。”
这类似于说“我们不应该有汽车”,因为它们让我们变得懒惰,我们忘记了走路/跑步。或者“我们不应该使用 IDE”,因为它们让我们成为糟糕的程序员,无法在编辑器中编写代码,也无法记住语法。此外,此推理适用于获取代码的任何方式(例如 git),因此不值得讨论。
然而,值得讨论的是告知用户要负责任。具有讽刺意味的是,CocoaPods 的原始作者确信使用大量依赖项是一个非常糟糕的主意。有关如何处理此问题的实用建议,您应该阅读 这篇博客文章,作者为 Manfred Stienstra。
<“CocoaPods 使用工作区,而工作区被认为是用户数据。为什么它不使用普通子项目?”
从 Xcode 4 开始,Apple 为此目的引入了工作区。
从那时起,他们还向每个 xcodeproj 文档添加了工作区文件,这让人们相信工作区只是用户数据。这根本不正确,如果您以前这样做,则不应再忽略工作区文档。
请注意,CocoaPods 本身不需要使用工作区。如果您更喜欢使用子项目,可以通过运行 pod install --no-integrate
来执行此操作,这将根据您的需要将集成留给您的项目。
<“为什么我必须安装 Ruby 才能使用 CocoaPods?”
您不必这样做,macOS 预装了 Ruby 2.0.0 或更高版本,位于 /usr/bin/ruby
中,它们是我们的基线,并且应该开箱即用。
<“我可以更改默认的 CocoaPods 存储库文件夹吗?”
默认情况下,CocoaPods 将存储库存储在您的主文件夹中,位于 ~/.cocoapods
中,并将 Pods 缓存到 ~/Library/Caches/CocoaPods
中。
您可以在环境中设置 CP_HOME_DIR
将其更改为另一个文件夹,例如 export CP_HOME_DIR=another-pods-dir
。缓存和存储库现在都将位于此文件夹中。