美文网首页
Cocoapods 安装及使用

Cocoapods 安装及使用

作者: _涼城 | 来源:发表于2022-04-23 08:45 被阅读0次

    什么是 CocoaPods

    CocoaPods是一个用Ruby写的,用作 Swift 和 Objective-C 项目的依赖管理器。

    CocoaPods 的安装

    CocoaPods 是用 Ruby 构建的,它可以使用 macOS 上可用的默认 Ruby 进行安装。也可以使用 Ruby 版本管理器。

    注意:CocoaPods 的版本安装会受到 Xcode 版本的影响

    默认 Ruby 安装

    使用默认的 Ruby 安装将要求 在安装 gems 时使用 sudo

    sudo gem install -n /usr/local/bin cocoapods
    

    无 Sudo 安装

    • 使用 --user-install 安装

      1. ~/.zshrc配置环境变量

        export GEM_HOME=$HOME/.gem
        export PATH=$GEM_HOME/bin:$PATH
        PATH="`ruby -e 'puts Gem.user_dir'`/bin:$PATH"
        
      2. 安装 Cococapods

        gem install cocoapods --user-install
        
    • 使用 rvm 管理的 ruby 安装,关于 rvm 的安装可以参照

      gem install cocoapods
      

    Pod Setup

    • MacOS Catalina 及以后的系统,可替换镜像源

      git clone https://github.com/CocoaPods/Specs.git ~/.cocoapods/repos/trunk
      
    • MacOS Catalina 以前的系统

      pod setup
      
    • 添加 私有源或镜像源

      pod repo add REPO_NAME SOURCE_URL
      

    CocoaPods 的 specs repo 默认在 ~/.cocoapods/repos 路径,Cache 默认路径在 ~/Library/Cache/CocoaPods

    使用 CococaPods

    初始化 Pod

    pod init
    

    部分 Command Line API

    Cocoapods Command-Line

    #下载并安装所有依赖项
    pod install
    #更新依赖库
    pod update
    #查找可更新的库
    pod outdated
    #删除项目中的 CocoaPods
    pod deintegrate
    # 搜索
    pod search
    

    编辑 Podfile

    # 指定的 workspace,可选
    workspace 'MyWorkspace'
    # 指定的 project,可选
    project 'Myxcodeproj'
    # 不指定会默认,可配置镜像源、私有源
    source 'https://github.com/CocoaPods/Specs.git'
    # 支持的平台和版本
    platform :ios, '9.0'
    # 可忽略引用库的所有警告
    inhibit_all_warnings!
    # 抽象的 Target 用于多个 Target
    abstract_target 'Shows' do
      # 尽可能不使用 动态库
      #use_frameworks!
      # 添加需要的 Pod
      pod 'testPod'
      # 添加指定版本的 Pod
      #'> 0.1'任何高于 0.1 的版本
      #'>= 0.1'0.1 版及更高版本
      #'< 0.1'任何低于 0.1 的版本
      #'<= 0.1'版本 0.1 和任何更低版本
      pod 'testVersion','1.1.0'
      # 添加指定 configutartion 的 Pod 
      pod 'testConfigutartion',:configutartions =>['Debug']
      # 添加从指定Git仓库下载指定 Tag 的Pod
      pod 'testGitSource',:git=>'https://github.com/test/testGitSource.git',:tag=> '1.0.0'
      # 添加指定本地路径的 Pod
      pod 'testLocal', :path => '../code/Pods/'
    
      # Has its own copy of ShowsKit + ShowWebAuth
      target 'ShowsiOS' do
        pod 'ShowWebAuth'
      end
    
      # Has its own copy of ShowsKit + ShowTVAuth
      target 'ShowsTV' do
        pod 'ShowTVAuth'
      end
    end
    
    

    什么是 Podfile.lock?

    Podfile.lock 文件是在第一次运行 pod install 后生成的,并跟踪已安装的每个 Pod 的版本。通过这种方式,CocoaPods 避免了因依赖项发生意外更改而引起的问题。

    Pod install 做了什么?

    1. 创建或更新 workspace
    2. project 添加到 workspace
    3. 将 CocoaPods 静态库添加到 workspace
    4. libPods.a 添加到:targets => build phases => link with libraries
    5. 将 CocoaPods 的 xcconfig 文件添加到应用程序的项目中。
    6. 将应用的 target xcconfig 更改为基于 CocoaPods 的配置。
    7. 添加构建阶段以将资源从安装的任何 pod 复制到应用程序包。即在所有其他构建阶段之后的“脚本构建阶段”,具有以下内容:
      • Shell:/bin/sh
      • Script::${SRCROOT}/Pods/PodsResources.sh

    什么时候使用 pod install

    将在第一次要检索项目的 pod 时使用,也可以在每次编辑 Podfile 以添加、更新或删除 pod 时使用。

    • 每次pod install运行命令时,会下载和安装新的 Pod,它都会在 Podfile.lock 文件中写入为每个 Pod 安装的版本。 Podfile.lock 文件跟踪每个 Pod 的已安装版本并锁定这些版本。
    • 当运行 pod install,只会解析 Podfile.lock
      • 对于 Podfile.lock 文件中已经列出的 Pod,会下载其对应版本,不会尝试检查是否有更新的版本可用
      • 对于 Podfile.lock 文件中未列出的 Pod,会搜索与Podfile(如pod 'MyPod', '~>1.2')中描述的版本相匹配的版本,如果未指定版本,则会下载最新的版本

    pod update 做了什么?

    运行时pod update,CocoaPods 会尝试查找每个 pod 的更新版,而不考虑 Podfile.lock 文件. 它会将 pod 更新到可能的最新版本(只要它符合Podfile 中的版本限制),更新之后会修改 Podfile.lock 中 Pod 的版本。

    正确地使用 pod update

    建议使用pod update [podname] ,将只能更新特定的 pod(检查是否存在新版本并相应地更新 pod)。与之相反,pod install 它不会尝试更新已安装的 pod 版本。

    是否将 Pods 目录加入源代码管理中

    加入 Pods 目录的好处
    • 克隆 repo 后,项目可以立即构建和运行,即使机器上没有安装 CocoaPods。无需运行pod install,也无需联网。
    • Pod 始终可用,即使 Pod 的源(例如 GitHub)出现故障。
    • 克隆 repo 后,Pod 保证与原始安装中的相同。
    忽略 Pods 目录的好处
    • 源代码控制 repo 会更小,占用更少的空间。
    • 只要所有 Pod 的源(例如 GitHub)都可用,CocoaPods 通常能够重新创建相同的安装。
    • 执行源代码控制操作时不会有任何冲突需要处理,例如合并具有不同 Pod 版本的分支。

    注:无论 Pods 是否加入源代码管理,PodfilePodfile.lock 都应始终处于版本控制之下。

    CocoaPods 插件

    如何安装插件

    1. 安装 gem 包

      • 使用 gem 命令安装

        gem install [插件名称]
        
      • 编辑 Gemfile,使用 bundler 安装,可用于团队协作

        source 'https://rubygems.org'
        
        gem 'cocoapods'
        gem 'cocoapods-binary'
        
    2. Podfile 中添加

       platform :ios, '9.0'
      + plugin 'cocoapods-repo-update'
        use_frameworks!
      

    相关文章

      网友评论

          本文标题:Cocoapods 安装及使用

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