RubyGems + Bundler
对于许多人来说,CocoaPods是编程项目中依赖管理的第一个介绍。CocoaPods的很多想法来自类似的项目(例如RubyGems,Bundler,npm和Gradle)。
了解Ruby依赖关系管理非常有用,因为它允许您指定CocoaPods或其他gem的版本,并确保团队中的所有开发人员具有完全相同的版本。本指南适用于希望确保团队依赖性一致性或使用未发布版本的CocoaPods的人员。
RubyGems
RubyGems是托管的ruby库服务。它集中在您寻找库的位置,以及安装ruby库/应用程序。你会看到的gem install xxx
。这些安装在中央数据库中。如果您想象CocoaPods将所有库/框架安装到System文件夹中并且它们在运行时链接,那么您就可以大致了解RubyGems如何保留所有gem。
这样做的缺点是无法确保需要特定版本库的项目可以使用它,它总是使用最新版本。因此,作为开发人员,您将谨慎安装新版本的库,因为它将在每个库/应用程序中使用。这是捆绑器解决的问题。
Bundler
Bundler允许您指定库的版本,从而为您的应用程序创建一致的应用程序环境。我们把这个想法几乎全部用于CocoaPods。您可以定义一个Gemfile来说明要包含的库,并可以选择指定版本或范围。你运行bundle install
它将生成一个Gemfile.lock,说明所有库的确切版本,然后运行bundle install