【Mac】安装 CocoaPods

2,097 阅读2分钟

1 准备工作

在安装 CocoaPods 之前,需要确保已经满足以下几个要求:

  1. Ruby 环境
    CocoaPods 是用 Ruby 编写的,因此需要确保已经安装了 Ruby。macOS 一般预装了 Ruby,在终端中运行 ruby -v 来检查是否已安装 Ruby。

  2. RubyGems
    RubyGems 是 Ruby 的软件包管理器,用于安装 Ruby 的库和工具。安装 Ruby 时一般会自动安装 RubyGems。在终端中运行 gem -v 来检查是否已安装 RubyGems。

  3. Homebrew
    Homebrew 是 macOS 上的软件包管理器。可以轻松安装、更新和管理各种开源软件包。可以使用 Homebrew 来安装 Ruby 和 CocoaPods。

安装 Ruby

安装 Homebrew

2 CocoaPods 安装和使用

CocoaPods 是一个用于管理 iOS 项目中第三方库依赖的工具。它简化了在 iOS 和 macOS 项目中集成第三方库的过程,使开发人员能够更轻松地管理项目的依赖关系。

2.1  安装

  • gem 命令

macOS Catalina (10.15) 及更高版本

sudo gem install cocoapods

macOS Mojave (10.14) 及更低版本

sudo gem install -n /usr/local/bin cocoapods
  • brew 命令

    brew install cocoapods

2.2 卸载

  • gem 命令卸载
  1. 卸载 CocoaPods

    sudo gem uninstall cocoapods
    
  2. 清理残留文件

    rm -rf ~/.cocoapods
    rm -rf ~/Library/Caches/CocoaPods
    rm -rf ~/Library/Preferences/org.cocoapods.CocoaPods.plist
    
  3. 卸载 Ruby Gems(可选)

    sudo gem uninstall rubygems-update
    
  • brew 命令卸载
  1. 卸载 CocoaPods

    brew uninstall cocoapods
    
  2. 清理残留文件

    rm -rf ~/Library/Caches/CocoaPods
    rm -rf ~/.cocoapods/repos
    
  3. 更新 Homebrew,更新后重装 CocoaPods

    brew update
    
  • 删除本地存储库索引文件
    删除索引文件并重新构建索引可以确保最新的库信息被索引,有时候旧的索引文件可能会导致搜索结果不准确。

    rm ~/Library/Caches/CocoaPods/search_index.json
    

2.3 使用

  1. 验证安装
    任意目录运行命令 pod --version 验证是否安装成功 
  2. 创建 Podfile
    在项目根目录下运行 pod init 命令创建一个名为 Podfile 的文件 
  3. 安装依赖
    运行 pod install [package] 命令来安装 Podfile 中指定的所有依赖库 
  4. 更新依赖
    使用 pod update 命令来更新依赖库到最新版本

3 配置镜像存储库

3.1 官方镜像源

  • 新版本配置

CocoaPods 安装成功后,默认情况下会使用官方镜像存储库,在终端中运行 pod repo 命令来查看当前配置的存储库。

如果你使用的是 CocoaPods 1.8.0 或更高版本,当第一次运行 pod installpod update 命令时,CocoaPods 会自动检测你所在的国家和地区,然后尝试使用镜像存储库加快下载速度。

如果你在国内,就会自动使用 https://cdn.cocoapods.org/ 这个地址,安装成功后对应的目录即 .cocoapods/repos/trunk

  • 旧版本配置或手动配置

1. 打开终端,进入 gem 的源代码目录。

cd ~/.cocoapods/repos/

2. 删除默认的 CocoaPods Specs 存储库。

pod repo remove master

3. 添加镜像存储库。

pod repo add trunk https://cdn.cocoapods.org/

4. 然后运行 pod setup 命令更新 CocoaPods 本地索引缓存。

pod setup 

5. 最后通过 pod repo list 命令查看本地存储库列表,确认是否已经切换到了镜像存储库。如果你看到 .cocoapods/repos/trunk 存储库出现在列表中,说明镜像存储库已经成功添加。

pod repo list 

pod setup 命令过程详解

pod setup 用于设置和配置本地的 CocoaPods 仓库,第一次安装 CocoaPods 或者需要更新本地仓库时,可以运行 pod setup 命令。

运行 pod setup 命令将会执行以下操作:

  1. 下载 Master Repository:pod setup 命令会从远程源下载 CocoaPods 主仓库(Master Repository)。主仓库包含了大量的开源库的信息和配置文件。

  2. 配置本地仓库:下载完成后,pod setup 命令会将主仓库的内容复制到本地的 .cocoapods 目录中。这样,您就可以使用本地仓库来快速查找和安装开源库。

pod setup 本质就是将官方镜像存储库的代码下载到~/.cocoapods/repos隐藏目录下,这导致pod setup等待时间太长。

CocoaPods 1.0.0 版本之前,pod install 命令并不会自动执行 pod setup 命令,因此需要手动运行 pod setup 来设置本地 Specs 仓库。

CocoaPods 1.0.0 版本开始,pod install 命令默认会自动执行 pod repo update 命令来更新本地 Specs 仓库,并且会在需要时自动运行 pod setup 命令进行初始化。因此,在当前版本的 CocoaPods 中,你不需要手动运行 pod setup 命令来设置本地 Specs 仓库。

终端查看文件下载进度

如果想查看文件下载进度,可以新建窗口(command+Ncommand+T)查看。

cd ~/.cocoapods

du -sh *

du -sh * 是一个用于查看当前目录下所有文件和子目录的磁盘空间占用情况的命令,其中:

  • du 是 Disk Usage 的缩写,即磁盘使用情况;
  • -s 选项表示只显示总计大小;
  • -h 选项表示以人类可读的方式显示文件大小,例如使用 KB、MB、GB 等单位。
  • * 表示匹配当前目录下所有的文件和子目录。

3.2 国内镜像源

如果在使用 CocoaPods 时遇到下载速度慢或者无法连接到镜像源的问题,可以考虑切换到其他镜像源,如清华大学的开源软件镜像站等。

1. 打开终端,进入 gem 的源代码目录

cd ~/.cocoapods/repos/

2. 下载镜像源

  • Tencent 镜像源

    git clone https://mirrors.tencent.com/github-mirror/cocoapods-specs.git tencent 
    
  • Alibaba 镜像源

    git clone https://github.com/aliyun/Specs.git alibaba
    
  • 清华大学 Tuna 镜像源

    git clone https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git tuna
    

3. 添加新的镜像源到 CocoaPods 中 

pod repo add tencent https://mirrors.tencent.com/github-mirror/cocoapods-specs.git

pod repo add alibaba https://github.com/aliyun/Specs.git

pod repo add tuna https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git

4. 如果需要使用其中任何一个镜像,可以通过在 Podfile 文件中添加 source 语句来指定镜像源

source 'https://cdn.cocoapods.org/'
# source 'https://mirrors.tencent.com/github-mirror/cocoapods-specs.git' 
# source 'https://github.com/aliyun/Specs.git' 
# source 'https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git' 

platform :ios, '10.0' 

target 'MyApp' do     
    # Pods 
end 

4 CocoaPods 命令

  • pod init 在当前目录下创建一个新的 Podfile 文件,用于描述项目的依赖库。
  • pod install 根据 Podfile 文件中的描述,安装项目的依赖库。如果存在 Podfile.lock 文件,会根据该文件中记录的版本来安装依赖库。
  • pod update 更新项目中的依赖库到最新版本。该命令会忽略 Podfile.lock 文件,直接根据 Podfile 中的描述来更新依赖库。
  • pod search <库名> 搜索指定库的信息。例如,pod search AFNetworking 将搜索关于 AFNetworking 库的信息。
  • pod setup 设置 CocoaPods 的本地镜像源(Specs 仓库)。用于在首次安装 CocoaPods 或者需要更新 Specs 仓库时运行。
  • pod repo 管理本地的 Cocoapods 镜像源(Specs 仓库),可以查看、添加、删除等操作。
  • pod repo update 用于更新本地镜像源(Specs 仓库)中的库文件信息。
  • pod spec create <库名> 创建一个新的库的 Podspec 文件,用于描述库的信息和依赖关系。
  • pod spec lint 验证 Podspec 文件的正确性和规范性。
  • pod lib create <库名> 创建一个新的 CocoaPods 库项目的基本结构。
  • pod outdated 检查项目中的依赖库是否有更新的版本可用。