Ios 使用git子模块/cocoapod

Ios 使用git子模块/cocoapod,ios,github,repository,git-submodules,cocoapods,Ios,Github,Repository,Git Submodules,Cocoapods,我正在从事一个项目,其中包括来自Git的其他存储库 我想与这些存储库保持同步。了解最新的功能、错误修复等。 问题1)在不接收所有报告问题的电子邮件等的情况下,在Git上使用存储库保持最新信息的最佳方式是什么 完成后,我想知道最好的方式,包括这些到您的项目。我知道您可以将源代码复制到项目中,但是cocoapod/子模块的用途是什么?例如,用包含的存储库的最新更改更新项目的正确方法是什么 与terminal不同,这两种方法都有GUI吗?是在Xcode项目中包含其他项目的好方法。Cocoapods项目

我正在从事一个项目,其中包括来自Git的其他存储库

我想与这些存储库保持同步。了解最新的功能、错误修复等。 问题1)在不接收所有报告问题的电子邮件等的情况下,在Git上使用存储库保持最新信息的最佳方式是什么

完成后,我想知道最好的方式,包括这些到您的项目。我知道您可以将源代码复制到项目中,但是cocoapod/子模块的用途是什么?例如,用包含的存储库的最新更改更新项目的正确方法是什么

与terminal不同,这两种方法都有GUI吗?

是在Xcode项目中包含其他项目的好方法。Cocoapods项目维护了许多开源库的文件列表,其中指定了在哪里下载代码以及如何将它们集成到现有项目中。正如您所指出的,传统上您必须添加
git子模块
,手动将源文件添加到项目中,更新构建设置,等等。Cocoapods会帮你处理所有这些

我不确定是否有一种方法可以跟踪Github项目的更新,而不通知问题,但是Cocoapods肯定可以告诉您是否有任何“pods”已经过时。然后,只需一个命令即可将它们更新到最新版本。也就是说,通常是将您的外部依赖项“锁定”到您知道可以正常工作的特定版本

使用椰子荚 首先要开始。然后,只需在根项目目录中创建一个名为
Podfile
的文件(与包含
.xcodeproj
文件的目录相同)。在内部,您可以指定目标操作系统和依赖项:

platform :ios, '5.0'

pod 'AFNetworking', '0.9.1'
pod 'OHAttributedLabel', '0.1.1'
上面的例子以iOS 5.0为目标,引入了AFNetworking和OHAttributedLabel项目

然后,在终端中,更改到项目目录:

> cd path/to/my/project
然后运行
pod安装

> pod install
这将为您检查最新版本的依赖项。它还将生成一个
.xcworkspace
文件。从现在起,在处理项目时,必须打开.xcworkspace,而不是.xcodeproj文件

在新的工作区内,您将拥有现有的Xcode项目和一个新的
Pods
项目-其中包含所有第三方库。只要像平常一样构建和运行你的应用程序,Pods项目也将被构建和包含

其他一些有用的Cocoapods命令:

> pod outdated
将列出具有可用更新的所有依赖项

> pod search query
将搜索所有已知的Pod规格以查找“查询”。用于查找新库

教程
  • 看起来塔斯普勒斯有一个不错的
  • 有一个
圭 恐怕我不知道cocoapod的gui,但实际上您需要知道的终端命令并不多。使用命令行是值得的,因为它是一个非常有用的开发工具

也就是说,据我所知,(Objective-C的替代IDE)正计划在下一次更新中添加Cocoapods支持


祝你好运

James Frost的回答很好地解释了如何使用CoCoapod及其相对于子模块的优势

与CoCoapod相比,子模块具有以下几个重要优势:

子模块是子repo-这不仅意味着git和git GUI可以隐式识别它们,并且越来越多的支持轻松地使用它们,还意味着您的依赖关系与git repo(不管是否是CoCoCoapod)所在的奇妙世界保持联系。这意味着您能够在项目内协作和测试更改,您的项目通常是细化依赖关系的灵感来源

不幸的是Cocoapods没有维护这个链接,在依赖项上工作意味着从git克隆它,超出Cocoapods的范围。 编辑:值得注意的是,cocoapod确实允许使用
路径
本地
字段在本地pod上工作,甚至可以构建自己的Spec repo,但这仍然不是一个简单的过程

少一个工具依赖项-如前一个项目符号所述,子模块是git的一个功能,您使用git意味着您可以使用它们。任何采用git的软件都意味着它们最终将支持git的所有(重要)特性或涵盖常见用例的所有特性。Xcode 5引入了对git和GUI的基本支持(这是工具依赖项,是真的,但希望只是说明信息是如何呈现的,git说明它是如何工作的),就像git Tower使使用子回购变得简单

Cocoapod已经走过了漫长的道路,每天都在采取措施,成为一个稳定的,不可或缺的工具。然而,它还没有得到苹果的同意,苹果也没有理由不发布一个打破Cocoapods的Xcode变更。此外,Cocoapod依赖于Ruby。除此之外,考虑到椰子荚引起了多少关注和社区,苹果忽视它是愚蠢的



同样值得注意的是,使用其中一个并不会阻止你使用另一个。这可能是一个令人头痛的问题,也可能是您所需要的,可能是将Cocoapods用于小型单类库或具有复杂依赖性的库,以及您将经常与之交互的库的子模块。

现在有一个新的Xcode插件来管理Cocoapods。你应该用GUIs来做。这是一个很好的回答。然而,我认为需要注意的是,大多数豆荚已经过时了。出于某种原因,许多项目只是“忘记”更新它们的pod。因此,请始终与主回购确认您的POD实际上是最新版本。感谢您解释CocoaPods!我希望您已经给出了另一个选项,git子模块,t