美文网首页
cocoapods源码2 - cocoapods.rb

cocoapods源码2 - cocoapods.rb

作者: xiongzenghui | 来源:发表于2018-08-11 16:30 被阅读15次

该rb文件主要完成:

  • 1、require cocoapods依赖的rb文件
  • 2、错误信息
  • 3、autoload使用module关联后续被require的rb文件
require 'rubygems'
require 'xcodeproj'

# It is very likely that we'll need these and as some of those paths will atm
# result in a I18n deprecation warning, we load those here now so that we can
# get rid of that warning.
require 'active_support/core_ext/string/strip'
require 'active_support/core_ext/string/inflections'
require 'active_support/core_ext/array/conversions'
# TODO: check what this actually does by the time we're going to add support for
# other locales.
require 'i18n'
if I18n.respond_to?(:enforce_available_locales=)
  I18n.enforce_available_locales = false
end

module Pod
  # 1、
  require 'pathname'
  require 'tmpdir'

  # 2、导入依赖的cocoapods rb文件
  require 'cocoapods/gem_version'
  require 'cocoapods-core'
  require 'cocoapods/config'
  require 'cocoapods/downloader'
  # Loaded immediately after dependencies to ensure proper override of their
  # UI methods.
  require 'cocoapods/user_interface'

  # 2、Indicates an user error. This is defined in cocoapods-core.
  class Informative < PlainInformative
    def message
      "[!] #{super}".red
    end
  end

  # 3、Xcodeproj::PlainInformative.include(CLAide::InformativeError)
  Xcodeproj::PlainInformative.send(:include, CLAide::InformativeError)

  # 4、autoload(module, filename) 
  # - 1)将module与filename关联起来
  # - 2)当第一次使用module时,使用require加载对应的rb文件
  # - 3)执行过程与require一样
  # - 4)成功返回nil,找不到文件会抛出LoadError
  # - 5)通过 Pod::module => 访问被关联的 filename rb文件
  #   => Pod::Command => require('cocoapods/command') => cocoapods/command.rb
  autoload :AggregateTarget,           'cocoapods/target/aggregate_target'
  autoload :Command,                   'cocoapods/command'
  autoload :Deintegrator,              'cocoapods_deintegrate'
  autoload :Executable,                'cocoapods/executable'
  autoload :ExternalSources,           'cocoapods/external_sources'
  autoload :Installer,                 'cocoapods/installer'
  autoload :HooksManager,              'cocoapods/hooks_manager'
  autoload :PodTarget,                 'cocoapods/target/pod_target'
  autoload :Project,                   'cocoapods/project'
  autoload :Resolver,                  'cocoapods/resolver'
  autoload :Sandbox,                   'cocoapods/sandbox'
  autoload :Target,                    'cocoapods/target'
  autoload :Validator,                 'cocoapods/validator'

  # 5、继续定义module,专门关联右侧rb文件
  module Generator
    autoload :Acknowledgements,        'cocoapods/generator/acknowledgements'
    autoload :Markdown,                'cocoapods/generator/acknowledgements/markdown'
    autoload :Plist,                   'cocoapods/generator/acknowledgements/plist'
    autoload :BridgeSupport,           'cocoapods/generator/bridge_support'
    autoload :Constant,                'cocoapods/generator/constant'
    autoload :CopyResourcesScript,     'cocoapods/generator/copy_resources_script'
    autoload :DummySource,             'cocoapods/generator/dummy_source'
    autoload :EmbedFrameworksScript,   'cocoapods/generator/embed_frameworks_script'
    autoload :Header,                  'cocoapods/generator/header'
    autoload :InfoPlistFile,           'cocoapods/generator/info_plist_file'
    autoload :ModuleMap,               'cocoapods/generator/module_map'
    autoload :PrefixHeader,            'cocoapods/generator/prefix_header'
    autoload :UmbrellaHeader,          'cocoapods/generator/umbrella_header'
    autoload :AppTargetHelper,         'cocoapods/generator/app_target_helper'
  end

  # 6、
  require 'cocoapods/core_overrides'
end

相关文章

  • cocoapods源码2 - cocoapods.rb

    该rb文件主要完成: 1、require cocoapods依赖的rb文件 2、错误信息 3、autoload使用...

  • Cocoapods源码调试

    下载pod源码 下载地址[https://github.com/CocoaPods/CocoaPods] 工程目录...

  • CocoaPods使用

    什么是CocoaPods CocoaPods就是一种依赖管理工具。CocoaPods项目的源码在Github上管理...

  • mac 最新接CocoaPods 安装步骤

    一、CocoaPods简介 CocoaPods负责管理iOS项目中第三方框架。CocoaPods的项目源码在Git...

  • Cocoapods安装

    CocoaPods的简介: CocoaPods负责管理iOS项目中第三方框架。CocoaPods的项目源码在Git...

  • iOS 制作pod私有库 详细步骤

    什么是CocoaPods CocoaPods负责管理iOS项目中第三方框架。CocoaPods的项目源码在Gith...

  • CocoaPods 简介、安装和使用

    介绍 iOS 程序提供依赖管理的工具--CocoaPods。CocoaPods项目的源码 在 Github 上管理...

  • App瘦身 对动态库优化

    1.第三方提供的源码动态库 2.有源码的动态库 xcode 如果cocoapods管理的,添加 由文章可知-Wl是...

  • 公有仓库

    cocoaPods 公有仓库的建立 (分享自己的源码) 查看 cocoapods Specs 索引目录 两种方...

  • 学习Xcodeproj

    Xcodeproj源码: https://github.com/CocoaPods/Xcodeproj[https...

网友评论

      本文标题:cocoapods源码2 - cocoapods.rb

      本文链接:https://www.haomeiwen.com/subject/sipdbftx.html