使用 CocoaPods 有啥好处?

Posted

技术标签:

【中文标题】使用 CocoaPods 有啥好处?【英文标题】:What is the advantage of using CocoaPods?使用 CocoaPods 有什么好处? 【发布时间】:2016-08-06 13:16:16 【问题描述】:

只需将一些文件拖到项目中即可“手动”安装许多 Pod。对我来说,这似乎是一种更方便的安装 pod 的方式。

如果我使用 CocoaPods,我必须创建一个 PodFile 并执行一堆命令,将框架添加到“链接框架和库”部分,然后重新构建。这似乎是很多工作。然而 CocoaPods 是安装 pod 的“推荐”方式。

我知道 CocoaPods 可以为您检测更新。但这并不是说您打开 Xcode 并弹出一条消息说您的一个 pod 已过时。您已手动使用命令检查更新。我的意思是,您要安装 pod 的原因是因为您想使用 pod 提供的功能之一,而您不想自己编写它。因此,新功能的更新可能不会让我受益匪浅。

AdMob SDK 等大型库甚至会在您运行应用时提醒您有可用更新。

CocoaPods 除了为您检测更新之外,还有其他优点吗?

附:由于新版本的 CocoaPods 中的错误,我多次破坏了我的项目。拖入的文件永远不会发生这种情况...

【问题讨论】:

使用 cocoapods 减少二进制文件的大小。 @pkc456 真的吗?怎么样? 其实我也想知道答案。特别想知道大团队如何防止“pod update”导致的代码冲突。就我个人而言,我发现拖放源代码要容易得多。 我可以补充一点,您可以为项目中的每个目标创建库列表。 【参考方案1】:

与手动管理项目中的依赖项相比,使用 Cocoapod 有很多优点。我列出了其中的几个

lib 可能会引用另一个依赖项,Cocoapod 会自行处理。您必须手动下载其中的每一个。 Lib 有某些要求,如操作系统版本、框架导入等。手动添加框架在Objective C.. 中很痛苦。swift 没有它。因此当时的Cocoapod是一头野兽。 手动添加的依赖项可能不容易为其他编码人员找到。 Pods 确保人们可以通过 pods 方案或Podfile 了解您使用的内容。 当您必须删除 prev 文件并添加新文件时,手动替换 lib 是一件很痛苦的事情 - 点击次数过多。 pod install 将使用一个命令自动完成。

除了项目中 pod 的初始设置之外,添加库的所有其他步骤都比手动添加 Lib 所需的技术知识更容易。

【讨论】:

【参考方案2】:

CocoaPods 提供了一个命令,该命令链接设置所有依赖项,一个 pod 文件,列出您要使用的所有库,然后运行 ​​pod install cocoaPods 为您所做的一切。

如果有更新,手动设置相同的框架也不会再头疼了,那么它们自己管理的可可豆荚也是如此。

项目共享/上传将很容易,因为所有框架实际上都包含在一个命令中,以前在添加框架后,我们需要通过添加应用程序中添加的所有框架来共享整个项目,如果某些文件未链接或未正确共享 - 其他开发人员确实浪费了大量时间来解决这些错误。

库搜索路径、标头路径和框架一切都由 CocoaPods 处理,以前开发人员需要处理这些消耗且难以管理的事情。

也只需查看项目中使用的库的一个文件,而不是检查整个框架并在 GitHub 的不同位置搜索所有文件。

CocoaPods 让开发人员的生活变得轻松,安装依赖项并以简单的方式进行编码。

希望这些信息对你有帮助:)

编码愉快!

【讨论】:

【参考方案3】:

除了 Shubhank 和 Anita 的回答之外,我还根据自己的经验补充几点:

轻量级回购:因为建议您只提交您的代码,并在每次新用户拉取您的代码时使用 pod install 来获取 pod。 Cocoa pos 使您的代码文件夹变得轻巧。如果您需要对任何 pod 进行更改,我们始终建议您提出 PR 请求并进行更新,以便其他用户可以从您的出色工作中受益。 依赖性:考虑到您的问题内容,​​我相信您是 Objective-c、swift、开发的新手。如果必须实际检查项目的构建设置并尝试设置所需的标头搜索路径和框架搜索路径,您会喜欢 cocoapod,而且您还需要设置标志,其中很多,链接器标志,图书馆员标志,如果您正在尝试使用诸如 XMPPOpenCV 之类的胖库。 集中化:如果您需要集成一个您认为很常见的功能,并且很多人必须面临类似的问题。你要做的是,到cocoapod.org 并搜索该功能。大多数情况下,您会得到一个很好的库来完成类似的工作,您可以集成和使用它。 文档: Cocoapods 提供了精细的细节,这是集成它所必需的,有时也需要这样做。 删除:今天我自己删除了 pubnub 并在我的代码中集成了 XMPP,如果我必须手动完成所有这些搜索路径和标志,这将更加乏味和耗时。 时间:通过以上所有方法,您将成倍地节省您的库集成时间,您可以使用它来集成更多漂亮的 pod,从而使您的产品看起来更漂亮。

有关更多详细信息,我希望您查看网站上的常见问题解答链接:https://guides.cocoapods.org/using/faq.html

【讨论】:

以上是关于使用 CocoaPods 有啥好处?的主要内容,如果未能解决你的问题,请参考以下文章

Alamofire 使用 CocoaPods 和 xcode 6.3

Xamarin.iOS CocoaPods基本使用

创建反应本机库并将CocoaPods添加到该库

iOS自动化部署

iOS自动化部署

cocoapos错误信息