现在的cocoapods与之前比较。有一些不一样的地方。参考了几篇文章整理了一下最新版 CocoaPods 的安装流程:
-
可以用以下命令查看当前ruby源:
$gem sources -l
-
显示当前的cocopods版本:
pod --version
-
搜索第三方的版本:
pod search 第三方
使用如下代码将官方的 ruby 源替换成国内淘宝的源:
1.移除现有Ruby默认源
$gem sources --remove https://rubygems.org/
2.等有反应之后再敲入以下命令来使用新的源替换原来的ruby源,建议添加两个
1)$gem sources -a https://ruby.taobao.org/
2)$gem sources -a http://rubygems-china.oss.aliyuncs.com
3.为了验证你的Ruby镜像是并且仅是taobao:
$gem sources -l
4.安装CocoaPods
(1) (老版本mac使用命令 $sudo gem install cocoapods )(苹果系统升级 OS X EL Capitan 后改为 $sudo gem install -n /usr/local/bin cocoa pods 输入密码时会没有显示,只要输入没错即可,输入完密码敲回车)新版mac系统使用$sudo gem install cocoa pods会报错:
ERROR: While executing gem ... (Errno::EPERM)
Operation not permitted - /usr/bin/pod
2017更新:
按照之前的步骤进行会报错
While executing gem ... (OpenSSL::SSL::SSLError)
hostname "gems.ruby-china.org" does not match the server certificate
这是因为使用 http://rubygems-china.oss.aliyuncs.com 源路径证书验证未通过,请使用https://gems.ruby-china.org/。
$ gem sources --remove http://rubygems-china.oss.aliyuncs.com
$ gem sources -a https://gems.ruby-china.org/
ERROR: Error installing pods:
activesupport requires Ruby version >= 2.2.2.
这里提示Ruby版本要大于或等于2.2.2
这里升级Ruby版本,
查看目前的所有ruby版本:
$rvm list known
如果提示command not found 请先安装rvm
$curl -L get.rvm.io | bash -s stable
如果已安装会列出所有的ruby版本.
注:安装完之后需要关闭终端窗口,再打开一个新的终端窗口里继续后续操作。后续还有反复的两步操作,上面的步骤执行完:
执行 rvm install 2.2.2
第一次执行错误后又执行了一遍,通过。
然后rugby源又报错!最终换成了`http://gems.ruby-china.org/`
最后执行
sudo gem install cocoapods
到此终于安装完成了
下面(2)中的内容大可以不必再看了!
(2) $pod setup
这就是软件的数据,其实前面安装的就是“壳”,这个就是数据包了,有点像安卓大型游戏那样先给个10多M的安装包,然后联网下数据包,这个是类似嘛!我们联网下载或则直接把下载的放对应的文件夹就好了么。
下面我们就说说这个指令
pod repo remove master pod repo add master https://git.oschina.net/akuandev/Specs.gitpod repo update
这三条指令就是把本来下载的地址删除掉,替换个下载,最后更新,大概190m吧。
下面我来整理下大致的顺序
安装后“壳”后接下来就是下载数据包了,首先
-
执行上面三句代码
pod repo remove master pod repo add master https://git.oschina.net/akuandev/Specs.git
接下来就开始漫长下载吧
pod setup
pod repo update
5.更新gem执行下面命令
$sudo gem update --system
(输入密码时会没有显示,只要输入没错即可),输入完密码敲回车
6.新建工程,并在终端用cd指令到文件夹内
$pod search 第三方
升级1.0之后CocoaPods使用方式发生了很大的变化!!!
CocoaPods的使用,原理上看,CocoaPods的使用是从Podfire文件读取运行的指令,这也就是为什么要在项目的文件夹下面生成一个podfire文件。
进入项目文件夹:
cd 路径// 路径直接把你的工程拖到终端就好了
生成一个podsfile 文件我们可以有两种方式
第一种用Vi
例如:
vi Podfile
此时会创建并打开Podfile文件, 如果Podfile 已经存在就是打开,不存在就创建并打开,然后写指令,最后保存。关于vi的指令大家可以学一下。
第二种是个简单的(推荐)
-
首先用touch 指令创建个Podfile文件
touch Podfile
然后 再用
open-ePodfile
此时打开Podfire就是一个文本编辑器了,简单明了。当然最好的是,我们commond + s 就可以保存了。接下来用
podinstall就可以安装了,
(pod install --verbose --no-repo-update或者
pod update --verbose --no-repo-update 会变快)
如果有问题就可以立即修改不用再打开Vi编辑器修改
具体Podfire的写法注意新的变化有
必须得加上 target 以及 use_frameworks!
例如导入 AFN
platform :ios,'9.0'// iOS平台 不写没影响
use_frameworks!// 必须写
target'smallInke'do// 这里target里面写入你的项目名称,就是你新建工程起的名字,不写会报错 do能不能省略,反正我没有试过,自己试试,但是我不会丢因为就是一个句子省略就不明了了
pod'AFNetworking','~> 3.0.4'// 不用解释了,以前里面就写这一句就行,通常执行”pod search 第三方“这条指令会显示出你要的版本,以及使用方法
end// 好理解了吧代表完成
- 缺少target报错:
- 缺少end报错:
这里给出格式
platform :ios,'9.0'
use_frameworks!
target'<#项目名#>'do
pod'<#第三方#>','~> <#版本#>'
end
7.$vi Podfile
写入内容并保存 小提示:(终端vim文件 按 i 可编辑 ,esc 退出编辑,:wq 可保存退出)
8.导入第三方库
podinstall就可以安装了,
(podinstall--verbose --no-repo-update或者
podupdate--verbose --no-repo-update 会变快)
9.退出编辑(见第7条)
以下是我用以前的安装流程安装时出现的一些错误
终端 cocoapods 下载bug调试:
错误1:
Error fetching http://ruby.taobao.org/: bad response Not Found 404 (http://ruby.taobao.org/specs.4.8.gz)
解决方案:把安装流程中 $gem sources -a http://ruby.taobao.org/ ---改为----> $gem sources -a https://ruby.taobao.org/
错误2:
ERROR: While executing gem ... (Errno::EPERM) Operation not permitted - /usr/bin/pod
解决方案:苹果系统升级OS X EL Capitan后会出现的插件错误,将安装流程 4.安装CocoaPods 的 (1)sudo gem install cocoapods ——>改为sudo gem install -n /usr/local/bin cocoapods
错误3:
[!] Unable to satisfy the following requirements: - `AVOSCloud (~> 3.1.6.3)` required by `Podfile`
Specs satisfying the `AVOSCloud (~> 3.1.6.3)` dependency were found, but they required a higher minimum deployment target.
解决方案:安装流程:Podfile文件 中 platform:ios, ‘6.0’ 后边的 6.0 是平台版本号 ,一定要加上
参考:
http://www.jianshu.com/p/6e5c0f78200a
http://blog.csdn.net/u012960049/article/details/52275272
http://blog.csdn.net/hong1595/article/details/74010620