更新: pod repo update ->sudo gem install -n /usr/local/bin cocoapods
每添加一个`第三方库`、`Framework`或者`SDK`,我们都需要手动添加相关依赖库,在工程
`buildsetting`中配置路径,在`build phases`中添加依赖的系统库。如果所导入的第三方库
还依赖其他第三方库,我们也需要手动导入且分别添加工程配置。
当我们开始使用`CocoaPods`管理第三方库后,我们只需要相当少的配置,其它的一切都交由
CocoaPods来管理即可.
// MARK: 原理
- 它是将所有的依赖库都放到另一个名为`Pods`的项目中,然后让主项目依赖 Pods 项目,
这样源码管理工作都从主项目移到了Pods项目中。
- Pods项目最终会编译成一个名为`libPods.a`的文件,主项目只需要依赖这个.a文件即可。
- 对于资源文件,CocoaPods提供了一个名为Pods-resources.sh 的 bash 脚本,该脚本
在每次项目编译的时候都会执行,将第三方库的各种资源文件复制到目标目录中。
- CocoaPods 通过一个名为 Pods.xcconfig 的文件来在编译时设置所有的依赖和参数。
CocoaPods 是用 ruby 实现的,要想使用它首先需要有ruby环境。
虽然MAC系统默认可以运行ruby。但是ruby版本过低是无法正常支持CocoaPods的使用,所以需要
先安装更新升级 rvm 和 ruby 。
<p>
1. Homebrew、Rvm、Ruby 简介
1. 官网及相关链接
【Rvm 官网】 : https://www.rvm.io/
【Ruby 官网】 : https://rubygems.org/
【Rvm 安装指南 】:https://rvm.io/rvm/install
【Homebrew 官网】 :http://brew.sh/index_zh-cn.html
【ruby 镜像 - taobao】:https://ruby.taobao.org/
【ruby 镜像 - china】:https://gems.ruby-china.org/
2. Homebrew 是一个软件包管理器,用于在mac上安装一些os x上没有的Unix工具;类似于360软件管理器。
---------------------------------------------------------------------------------------------------
安装: /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
---------------------------------------------------------------------------------------------------
3. Rvm (Ruby Version Manager) ,是安装和管理 ruby 的一种工具。
*"RVM is a command-line tool which allows you to easily install,
manage, and work with multiple ruby environments from interpreters to sets of gems."*
4. Ruby 是一种面向对象的脚本语言,简单易用,功能强大。能跨平台和可移植性好等等。其实就是种脚本语言。
Ruby 的软件源使用的是亚马逊的云服务,国内网络环境下载时可能会出现各种不稳定和超时,所以自带的需要翻墙,
可以将 官方ruby源替换成国内淘宝 ruby 源(已停止维护)`https://ruby.taobao.org/ `
或者 China ruby 源 `https://gems.ruby-china.org/ `。
2. CocoaPods 安装
第一步:检查安装 rvm 环境
不管需不需要升级 ruby,rvm 可以让你拥有多个版本的Ruby,并且可以在多个版本之间自由切换。
查看是否安装:
$ rvm -v
输出结果:
1> 存在 rvm 环境
MacBook-Pro:~ coder$ rvm -v
rvm 1.29.1 (latest) by Michal Papis, Piotr Kuczynski, Wayne E. Seguin [https://rvm.io/]
2> 不存在 rvm 环境
MacBook-Pro:~ coder$ rvm -v
-bash: rvm: command not found
/**
如果不存在 rvm 环境,先安装配置 rvm 环境 ,, ***网络设置DNS 8.8.8.8
指令安装:
$ curl -L get.rvm.io | bash -s stable
然后,载入 RVM 环境
$ source ~/.bashrc
$ source ~/.bash_profile
等待终端加载完毕,后输入
$ rvm -v
如果能显示版本号则安装成功了。
*/
-----------------------------------------------------------------------------------------------------
以上方法如遇失败,可尝试以下方法:
1、浏览器打开 get.rvm.io ,打不开的话就挂代理
2、cmd+A复制全部内容
3、命令行输入 cd Desktop 进入桌面
4、输入 touch install.sh 创建脚本文件
5、桌面打开install.sh 粘贴第二步内容
6、把 install.sh 文件拖入终端执行,
如果提示 Permission denied 权限问题就输入 chmod 777
然后拖入 install.sh 文件,然后再拖入一遍执行
7、然后终端应该会显示成功了,接下来接着执行命令安装
source ~/.bashrc
source ~/.bash_profile
8、完成后输入 rvm -v 能出现版本号就成功了
-----------------------------------------------------------------------------------------------------
第二步:检查 ruby 版本环境
CocoaPods目前安装需要Ruby的版本大于2.2.2,不然会报错:Error installing pods: activesupport requires Rubyversion >= 2.2.2.目前Mac系统默认自带是2.0,所以需要升级。
查看已安装的ruby:
$ ruby -v
ruby 2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin16]
列出ruby可安装的版本信息
$ rvm list known
指定 ruby 版本进行更新
$ rvm install 2.4.0
这里一定要设置为默认版本
$ rvm use 2.4.0 --default
等待时间,完成后 Ruby Gems 就安装好了
补充:
1.卸载一个已安装版本
$ rvm remove 1.9.2
2.检查 gem ruby 版本号
$ sudo gem -v
3.更新 gem ruby 版本号:(建议 升级到 2.6.x 以上)
$ gem update --system
第三步:更换源
1.更新gem
$ sudo gem update --system
2.先移除现有的源
$ gem sources --remove https://rubygems.org/
如果安装了淘宝的镜像
$ gem sources --remove https://ruby.taobao.org/
3.使用新的源
$ gem sources --a https://gems.ruby-china.com/
4.验证新源是否替换成功
$ gem sources -l
*** CURRENT SOURCES ***
https://gems.ruby-china.com/
说明 CocoaPods 前期配置完毕
第四步:安装Cocoapods
选择一:
1.在终端输入以下命令:
$ sudo gem install -n /usr/local/bin cocoapods
$ pod setup
这个过程会很慢,要耐心等待
选择二:
1.执行:
$ git clone https://git.coding.net/CocoaPods/Specs.git ~/.cocoapods/repos/master
2.切记要:
$ pod repo update
感觉也就几分钟的样子,
先随便搜索一个第三方库,如:
$ pod search AFNetWorking
有结果不报错说明已经安装成功了。
选择三:
把你同事已经装好了CocoaPods
cocoapods目录下的 repo 目录拷贝下来,放进自己的目录里。
$ pod setup
验证是否安装成功
$ pod --version
如果验证成功,显示版本号,说明可以安装全部完成.
如果显示-bash: po: command not found,说明没有装好
3. 使用
简便方法: cd项目 -> pod init -> podfile中输入
`pod 'AFNetworking', '~> 3.1.0'` -> pod install即可.
1.cd 到目录文件夹
$ cd /Users/ln/Desktop/TestDemo
2.提示
建议先查找一下当前所需第三方库的最新版本,如:
$ pod search 'AFNetworking'
3.创建 Podfile 配置文件
$ vim Podfile
4.键盘输入 i ,进入 Podfile 配置文件的编辑模式
按一次 Esc 按键退出编辑模式
5.保存并退出
:wq
这时候,你会发现你的项目目录中,出现一个名字为 Podfile 的文件,而且文件内容就是你刚刚输入的内容。注意, Podfile 文件应该和你的工程文件 .xcodeproj 在同一个目录下。
6.下载第三方库文件到项目工程中
$ pod install
每次更改了 Podfile 文件,你需要重新执行一次 pod update 命令。
CocoaPods 在执行 pod install 和 pod update 时,会默认先更新一次 CocoPods 的 spec 仓库索引。使用 --no-repo-update 参数可以禁止其做索引更新操作
$ pod install --no-repo-update
$ pod update --no-repo-update
4.【卸载 CocoaPods 安装】和【回退到指定 CocoaPods 版本】
卸载 CocoaPods 安装
$ sudo gem uninstall cocoa pods
回退到指定 CocoaPods 版本
$ sudo gem install -n /usr/local/bin cocoapods --version 0.39
5. 查看 CocoaPods 下载进度
还有一点需要注意, pod setup 在执行时,会输出 Setting up CocoaPods master repo ,但是会等待比较久的时间。这步其实是 Cocoapods 在将它的信息下载到 ~/.cocoapods 目录下,如果你等太久,可以试着 cd 到那个目录,用 du -sh * 来查看下载进度
执行语句
$ sudo gem install -n /usr/local/bin cocoapods
6. 使用 pod install 命令安装框架后的大致过程:
1.分析依赖:该步骤会分析Podfile,查看不同类库之间的依赖情况。
如果有多个类库依赖于同一个类库,但是依赖于不同的版本,那么cocoaPods会自动设置一个兼容的版本。
2.下载依赖:根据分析依赖的结果,下载指定版本的类库到本地项目中。
3.生成Pods项目:创建一个Pods项目专门用来编译和管理第三方框架,
CocoaPods会将所需的框架,库等内容添加到项目中,并且进行相应的配置。
4.整合Pods项目:将Pods和项目整合到一个工作空间中,并且设置文件链接。
7. 移除CocoaPods
1.删除工程文件夹下的Podfile、Podfile.lock和Pods文件夹。
2.删除xcworkspace文件。
3.打开xcodeproj文件,删除项目中的Pods文件夹及Pods.xcconfig引用和libpods.a:
4.打开Build Phases选项,删除Check Pods Manifest.lock和Copy Pods Resources,以及Embeded Pods Frameworks:
5.完成,编译运行,无错通过。
错误: ERROR: Could not find a valid gem 'cocoapods' (>= 0), here is why:
Unable to download data from https://gems.ruby-china.org/ - SSL_connect returned=1 errno=0 state=SSLv2/v3 read server hello A: sslv3 alert handshake failure (https://gems-ruby-china.b0.aicdn.com/specs.4.8.gz)
执行下这个命令:Xcode-select --install 并安装
错误: 升级CocoaPods遇到 ERROR: While executing gem ... (TypeError) no implicit conversion of nil into String
如图:

image
解决方法:先更新 Ruby
sudo gem update --system