CocoPods简介
- CocoaPods是一个用Ruby写的,负责管理iOS以及OSX系统下的一个第三方类库管理工具,通过CocoaPods,我们可以集中,统一的管理第三方开源库。当然这些库徐亚CocoaPods本身支持。
- 在引入第三方库时,它可以自动为我们完成各种配置,包括响应系统以来,配置编译阶段,链接器选项,甚至是ARC环境下的-fno-objc-arc配置等等
编译环境
系统版本:macOS Sierra 10.12.6
Xcode: v9.2(9C40b)
CocoaPods安装
貌似只能使用终端命令行
1.升级Ruby环境
$ sudo gem update --system
上面这个方法在CocoaPods 1.0之后应该是不行了,有可能会出现以下错误
Operation not permitted - /usr/bin/update_rubygems

在stackoverflow.com中找到了答案
$ sudo gem update -n /usr/local/bin --system

注意
其实在命令行中系统就提示了解决办法
/usr/bin/update_rubygems
2.更换Ruby镜像
首先 先移除现有的Ruby原生的镜像
$ gem sources --remove https://rubygems.org/
再添加国内的镜像源
$ gem sources -a https://gems.ruby-china.org/
注意
国内淘宝的镜像源已经不更新了
更新完毕之后通过命令行来查看当前的镜像源
$ gem sources -l
成功则显示如下

失败则重复执行 $ gem sources -a https://gems.ruby-china.org/
3.安装CocoaPods
提示
在Mac OSX 10.9 CocoaPods 还在0.9 时期 安装CocoaPods 的命令是
$ sudo gem install cocoapods
在Mac OSX 10.10之后 CocoaPods 已经升级到了1.0.0 命令已经变更为
$ sudo gem install -n /usr/local/bin cocoapods
执行命令
$ sudo gem install -n /usr/local/bin cocoapods
成功则出现如图所示

执行命令
$ pod setup
这时会出现 Setting up CocoaPods master repo
需要等待一段时间
4.使用CocoaPods
使用命令查看pod的版本号
$ pod --version
控制台输出 1.4.0
说明已经成功安装了CocoaPods
接下来需要 cd
到你的工程中
$ cd /Users/maybe/Desktop/testCocoaPods
我新建了一个项目 项目名为
testCocoaPods
touch podFile
通过vim命令在工程中创建一个podFile
文件
open podFile
通过vim命令打开该文件

配置好podFile文件,保存。
pod install
通过该命令下载

vim中表示已经下载完成,可以关闭当前Xcode项目,使用
testCocoaPods.xcworkspace

在这里 已经可以正常的使用CocoaPods了
5.CocoaPods一些异常处理
1. 搜索不到最新的第三方库版本
解决办法
- 通过命令行升级你本地的
repo
$ pod repo update
如果更新不下来,或者更新下来还是没有你需要的版本,就可以尝试升级pod版本。
1.3.1 升级 1.4.0 的时候我就发现有这个问题,直接更新repo不行,需要更新pod版本才能搜到最新版本的第三方库
这时候按照上面的方法执行下去,重新安装一遍 pod 就可以,注意查看下pod版本时候是否有更新。
有时候可能更新下来还是搜索不到,可以尝试使用命令来处理下
rm ~/Library/Caches/CocoaPods/search_index.json
来删除索引
成功删除缓存文件,终端是没有提示的,Unix的尿性就是没有提示就是成功意思。
这时重新发起搜索
Creating search index for spec repo 'master'..
需要等待一会,正在重新建立索引
稍微等待几分钟就可以重新搜索到。
2.卸载CocoaPods
卸载命令
$ sudo gem uninstall cocoapods
可进入文件夹中查看repo
$ cd ~/.cocoapods
卸载完成后,这个文件夹会被清空
3 [!] Failed to connect to GitHub to update the CocoaPods/Specs specs repo - Please check if you are offline, or that GitHub is down
当我们使用pod update
或者 pod repo update
时,可能会出现 [!] Failed to connect to GitHub to update the CocoaPods/Specs specs repo - Please check if you are offline, or that GitHub is down
问题

一开始我认为是网络问题,后来频繁的出现我发现是链接github出现了问题。
在stackoverflow 我找到了解决办法。
在这里可以看到出现这个问题的原因,以及解决的办法
2018年2月之后,其中一个主要问题是“弱密码标准被删除”。
To solve this, first you need to update openssl, then ruby, then cocoapod.
开始搬运代码
$ which openssl
/usr/bin/openssl
$ openssl version
OpenSSL 0.9.8zh 14 Jan 2016
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
$ brew update
$ brew install openssl
$ brew upgrade openssl
`` If you need to have this software first in your PATH run: echo 'export PATH="/usr/local/opt/openssl/bin:$PATH"' >> ~/.bash_profile
$ echo 'export PATH="/usr/local/opt/openssl/bin:$PATH"' >> ~/.bash_profile
$ source ~/.bash_profile
$ which openssl
/usr/local/opt/openssl/bin/openssl
$ openssl version
OpenSSL 1.0.2n 7 Dec 2017
$ brew install rbenv ruby-build
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi' >> ~/.bash_profile
$ source ~/.bash_profile
$ rbenv install --list
Available versions:
1.8.5-p52
1.8.5-p113
1.8.5-p114
1.8.5-p115
1.8.5-p231
1.8.6
:
2.5.0-rc1
2.5.0
2.6.0-dev
:
$ rbenv install 2.5.0
$ rbenv versions
* system (set by /Users/username/.rbenv/version)
2.5.0
$ ruby --version
ruby 2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin16]
$ rbenv global 2.5.0
$ rbenv versions
system
* 2.5.0 (set by /Users/username/.rbenv/version)
$ ruby --version
ruby 2.5.0p0 (2017-12-25 revision 61468) [x86_64-darwin16]
$ gem install cocoapods -n /usr/local/bin
$ which pod
/usr/local/bin/pod
$ pod --version
1.4.0
成功走到最后,则代表安装成功了,可以放心的pod update
和 pod repo update
了
Ruby选择的版本必须是大于2.0.0版本,最好是选择最新的例如 2.5.0 或者 2.5.1
在 2018.4.24你pod可能更新的是1.5.0版本,这个关系不大
还有一种解决方案 是每次需要更新你的repo时,将老版本的repo删除,重新下载
$sudo rm -fr ~/.cocoapods/repos/master
$pod setup
$pod install
6. 快速添加第三方库
在使用CocoaPods添加第三方库类库时,无论是执行``` pod install还是
pod update 时,经常会卡在
Analyzing dependencies,这是因为在更新本地
pod spec文件导致的。通过
no-repo-update标志可以不更新本地
pod spec``索引。
注意:第一次创建CocoaPods时不能使用,需要更新本地repo时不能使用
pod install --no-repo-update
pod update --no-repo-update
打印详细日志
pod update -verbose
网友评论