[CocoaPods]常见问题
“现在Swift有一个内置的包管理器,CocoaPods会停止开发吗?”
Swift Package Manager(SPM)处于“早期设计和开发”阶段[1]。它目前不支持iOS,观看操作系统或Objective-C 。在SPM发展的同时,CocoaPods将继续开发支持Swift和Objective-C。随着SPM接近成熟,我们将评估CocoaPods和CocoaPods社区的最佳前进方向。
“为什么不直接使用git子模块?”
CocoaPods 不是要下载代码。虽然它确实这样做,但它可以说是最不有趣的部分。
定义CocoaPods的是(交叉)依赖关系解析,(语义)版本管理,以及自动化“将其集成到Xcode”部分。
最后,即使您只是寻找下载程序,也要考虑实际上使用的其他SCM不仅仅是git。另一方面,CocoaPods是不可知的,并且从本地或HTTP位置处理Subversion,Mercurial和zip / tarball。
“我怎么能给CocoaPod捐赠?”
TL; DR:虽然我们非常欣赏这种情绪,但该项目(作为一个实体)不接受财务捐赠。我们有一篇很棒的博客文章。
“CocoaPods不做X,所以它无法使用。”
首先看第2点,然后考虑一下,除非你告诉我们缺失的特征及其重要性,否则它根本不会发生。我们不会搜索Twitter来寻找工作,所以请提交一张票,或者更好的是,以拉动请求的形式。
“CocoaPods不进行依赖性解析。”
CocoaPods总是做依赖性解析,但直到版本0.35它缺乏自动冲突解决方案。截至目前,CocoaPods可以解决任何可能解决的冲突。
“CocoaPods对社区不利,因为它使用户很容易添加许多依赖项。”
这类似于说“我们不应该有车”,因为它们让我们变得懒惰而忘记了行走/跑步。或者“我们不应该使用IDE ”,因为它们会让我们成为糟糕的程序员,他们无法在编辑器中编写代码并且无法记住语法。此外,这种推理基本上适用于任何获取代码的方法(例如git),因此不值得讨论。
什么是值得讨论的,但是,是通知用户来负责。具有讽刺意味的是,CocoaPods的原始作者确信使用大量依赖是一个非常糟糕的主意。有关如何处理这个实用的建议,你应该阅读这篇博客文章由曼弗雷德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
。缓存和存储库现在都在此文件夹中。