[TOC]
# 1. 现在Swift有内置包管理器,CocoaPods会停止开发吗?
截至撰写时,[Swift软件包管理器](https://github.com/apple/swift-package-manager)(SPM)处于“早期设计和开发”阶段。 它目前不支持 iOS,watch OS 或 Objective-C 。 在SPM开发的同时,CocoaPods将继续支持 Swift 和 Objective-C 的开发。 随着 SPM 成熟,我们将评估 CocoaPods 和 CocoaPods 社区的最佳课程。
# 2. 为什么不使用git子模块?
CocoaPods 不是关于下载代码的。虽然它确实做到了这一点,但可以说是最不有趣的部分。
定义 CocoaPods 的是(交叉)依赖项解析,(语义)版本管理,并将“集成到 Xcode”的部分自动化。
最后,即使您只是在寻找一个下载器,也要考虑到实际上还有其他的SCMs被使用,而不仅仅是 git 。另一方面,CocoaPods 是不可知的,它从本地或 HTTP 位置处理 Subversion、Mercurial 和 zip/tarballs。
# 3. 我怎样才能向 CocoaPods 捐款?
虽然我们非常欣赏这种情绪,但该项目(作为实体)不接受财务捐助。 我们有一个很棒的[博客文章](https://blog.cocoapods.org/Why-we-dont-accept-donations/)。
# 4. CocoaPods不会做X,所以它是无法使用的
考虑一下,除非你告诉我们关于缺失的功能以及为什么它很重要,否则它根本不会发生。 我们不会搜索 Twitter 来寻找工作,所以请提交[一个问题](https://github.com/CocoaPods/CocoaPods/issues/new),或者更好的是,以拉取请求的形式提交。
# 5. CocoaPods 不执行依赖关系解析
CocoaPods 一直执行依赖关系解析,但在版本0.35之前,它缺少自动冲突解决方案。 到目前为止,CocoaPods 可以解决任何可能解决的冲突。
# 6. CocoaPods 对社区不利,因为它使得用户添加许多依赖变得非常容易
这类似于说“我们不应该有汽车”,因为它们让我们变得懒惰,我们忘记了走路/跑步。 或者“我们不应该使用 IDE”,因为它们使我们成为不好的程序员,他们不能在编辑器中编写代码并且不记得语法。 此外,这个推理基本上适用于任何获取代码的方式(例如git),因此这不是值得讨论的。
然而,值得讨论的是通知用户负责。 讽刺的是,CocoaPods 的原作者确信使用大量的依赖关系是一个非常糟糕的主意。 有关如何处理此问题的实用建议,您应阅读Manfred Stienstra撰写的[此博客文章](http://www.fngtps.com/2013/a-quick-note-on-minimal-dependencies-in-ruby-on-rails/)。
# 7. CocoaPods 使用工作空间,这被认为是用户数据。 为什么它不使用正常的子项目
从Xcode 4开始,[Apple为此推出了工作区](http://developer.apple.com/library/ios/#featuredarticles/XcodeConcepts/Concept-Workspace.html)
从那以后,他们也将工作区文件添加到每个 xcodeproj 文档中,使人们相信工作区仅是用户数据。 这是不正确的,如果你这样做,你不应该再忽略工作区文档。
请注意,CocoaPods 本身不需要使用工作区。 如果您更喜欢使用子项目,那么可以通过运行 `pod install --no-integrate` 来完成此操作,这将在您认为合适的情况下将集成纳入您的项目中。
# 8. 为什么我必须安装 Ruby 来使用 CocoaPods?
你不这样做,macOS 带有一个预先安装在 `/ usr / bin / ruby` 中的 Ruby 2.0.0 或更新版本,它们是我们的基础,它们应该是开箱即用的。