壮志,敢教日月换新天。为有牺牲多

[CocoaPods]使用Gemfile

热烈欢迎,请直接点击!!!

进入博主App Store主页,下载使用各个作品!!!

注:博主将坚持每月上线一个新app!!!

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该项目的任何其他人获得完全相同的版本。

什么是Gemfile?

如果您已阅读Podfile上的指南,则会感觉非常相似。Gemfile是一个ruby文件,用于定义ruby依赖项。这是Cocoa项目中现有的一个。

复制代码
1 source 'https://rubygems.org'
2 
3 gem 'cocoapods'
4 gem 'cocoapods-keys'
5 
6 gem 'fui', '~> 0.3.0'
7 gem 'xcpretty'
8 gem 'second_curtain', '~> 0.2.3'
9 gem 'fastlane'
复制代码

所有Gemfiles必须包含其Gems的源,除了您使用或多或少相同的语法。这会生成一个Gemfile.lock,在这种情况下将CocoaPods锁定为版本 0.36.3。

将CocoaPods与Gemfile一起使用

使用Gemfile设置,您可以在Gemfile的约束中运行bundle install安装或bundle update更新。但是,从这里开始,您需要记住bundle exec在通过bundler进入的任何终端命令之前运行。鉴于CocoaPods包含在上面,这意味着pod XX YY你需要在任何时候写下你需要做的事情bundle exec pod XX YY

这样做bundle exec可以绕过Gemfile的特定版本,并将在RubyGems中使用最新版本的库。这可能是完全相同的版本,但通常不会。如果您包含CocoaPods插件,那么它们也可能无法运行。

这意味着您可以确保项目的基础工具的版本化就像您的个人库一样。

使用主CocoaPods

通常在中间版本中,您可能有兴趣使用Gemfile来处理未发布的CocoaPods版本。由于项目的规模,当我们确定它不会破坏项目时,我们会尝试缓慢释放。与CocoaPods一样,您可以轻松使用ruby项目的master或fork。以下是使用CocoaPods master 的Gemfile示例。

复制代码
 1 source 'https://rubygems.org'
 2 
 3 gem 'cocoapods', :git => 'https://github.com/CocoaPods/CocoaPods.git'
 4 gem 'cocoapods-core', :git => 'https://github.com/CocoaPods/Core.git'
 5 gem 'xcodeproj', :git => 'https://github.com/CocoaPods/Xcodeproj.git'
 6 
 7 gem 'cocoapods-keys', :git => 'https://github.com/orta/cocoapods-keys.git'
 8 
 9 gem 'xcpretty'
10 gem 'shenzhen'
11 gem 'sbconstants'
复制代码

运行bundle install将从master获取版本。由于CocoaPods是多个宝石,您可能必须包含其他依赖项,如上所述。

posted @   为敢技术  阅读(2622)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示