• [CocoaPods]使用Gemfile


    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是多个宝石,您可能必须包含其他依赖项,如上所述。

  • 相关阅读:
    【软件测试】软件缺陷粗浅认识及白盒测试举例
    【软件测试】等价类划分
    【软件测试】对本门课程粗浅理解
    阿里云服务器本地ping超时,远程可以正常ping通
    不忘初心
    开源框架、控件、组件、插件记录
    Flex中窗口可随意拖拽功能实现
    初探数据类型相关问题
    [TSCTF-J 2021] 解题报告
    指针
  • 原文地址:https://www.cnblogs.com/strengthen/p/10639070.html
Copyright © 2020-2023  润新知