CocoaPods的安装、使用、以及遇到的问题
CocoaPods是什么?
当你开发iOS应用时,会经常使用到很多第三方开源类库,比如JSONKit,AFNetWorking等等。可能某个类库又用到其他类库,所以要使用它,必须得另外下载其他类库,而其他类库又用到其他类库,“子子孙孙无穷尽也”,这也许是比较特殊的情况。总之小编的意思就是,手动一个个去下载所需类库十分麻烦。另外一种常见情况是,你项目中用到的类库有更新,你必须得重新下载新版本,重新加入到项目中,十分麻烦。如果能有什么工具能解决这些恼人的问题,那将“善莫大焉”。所以,你需要 CocoaPods。
CocoaPods应该是iOS最常用最有名的类库管理工具了,上述两个烦人的问题,通过cocoaPods,只需要一行命令就可以完全解决,当然前提是你必须正确设置它。重要的是,绝大部分有名的开源类库,都支持CocoaPods。所以,作为iOS程序员的我们,掌握CocoaPods的使用是必不可少的基本技能了。
如何下载和安装CocoaPods?
注:要使用CocoaPods,那就要下载安装它,而下载安装CocoaPods需要Ruby环境
1.Ruby环境的安装
1.1.Ruby版本过低,使用RVM(Ruby Version Manage即Ruby版本管理)升级Ruby
//1.安装RVM
curl -L get.rvm.io | bash -s stable
//2.等待一段时间后就可以成功安装后RVM
source ~/.bashrc
//3.测试是否安装正常
rvm -v
1.2.用RVM升级Ruby
//列出已知的ruby版本号
rvm list known
//安装ruby 最新版本
rvm install 最新版本号
1.3.查看ruby版本
ruby -v
2.cocoaPods的安装
2.1.切换cocoaPods的数据源
//先删除旧的数据源(有墙)
gem source --remove https://rubygems.org/
//添加新的数据源(淘宝源目前已没有维护)
gem source -a https://gems.ruby-china.com
//查看数据源
gem source -l
2.2.安装cocoaPods
//安装cocoaPods
sudo gem install cocoapods
//配置仓库
pod setup
//下载结束,可查看版本号
pod --version
CocoaPod的使用
2.1.1.开源库的搜索
pod search AFNetworking
2.1.2.添加第三方库,
- 终端命令
a.新建一个项目
b.终端中,cd到项目的总目录
c.建立Podfile(配置文件) vim Podfile
d.键盘输入 i,进入编辑模式
e.编辑结束,按Esc,并且输入“ :”号进入vim命令模式,然后在冒号后边输入wq进行保存
f.输入 pod install,开始安装第三方
- 关于Podfile文件编辑
a.正常情况的编写
platform:ios,'8.0'
target:'工程的名字' do
pod '第三方库的名字','版本号'
end
b.如果不同的Target需要不同的依赖库,则可以
platform :ios
target :'FirstTarget' do
pod 'Reachability'
pod 'SBJson'
pod 'AFNetworking'
end target :'SecondTarget' do
pod 'OpenUDID'
end
c.第三方库版本号的各种写法:
pod ‘AFNetworking’ //不显式指定依赖库版本,表示每次都获取最新版本
pod ‘AFNetworking’, ‘2.0’ //只使用2.0版本
pod ‘AFNetworking’, ‘>2.0′ //使用高于2.0的版本
pod ‘AFNetworking’, ‘>=2.0′ //使用大于或等于2.0的版本
pod ‘AFNetworking’, ‘<2.0′ //使用小于2.0的版本
pod ‘AFNetworking’, ‘<=2.0′ //使用小于或等于2.0的版本
pod ‘AFNetworking’, ‘~>0.1.2′ //使用大于等于0.1.2但小于0.2的版本,相当于>=0.1.2并且<0.2.0
pod ‘AFNetworking’, ‘~>0.1′ //使用大于等于0.1但小于1.0的版本
pod ‘AFNetworking’, ‘~>0′ //高于0的版本,写这个限制和什么都不写是一个效果,都表示使用最新版本
CocoaPod安装以及使用过程中出现的问题
a.没有指定工程中的Target

b.Podfile编写规范有误

c.安装了多个Xcode导致路径发生改变
.
解决办法
sudo xcode-select -switch /Applications/Xcode.app
注: /Applications/Xcode.app:此部分未Xcode所在路径,找到Xcode的安装路径,拖进来即可
d.当库正常导入后,但还是找不到相关头文件,制约了我们的开发效率,则可以:
在TARGETS -> Search Paths -> User Header Search Paths 中 写入 ${SRCROOT}再将后面参数改为recursive:
e.该开始安装后,会有以下情况,这一步一般都需要等待点时间,在安装过程,要是想查看下载进度,通过以下命令可以查看
//进入CocoaPods目录
cd ~/.cocoapods
//查看文件大小,每隔几分钟查看一次
du -sh *

f.当输入终端命令 :
sudo gem install cocoapods
提示以下错误:

这个问题说明是你的gem版本过旧了 (没有报错此步骤可以跳过)
执行 sudo gem update --system
或是在命令中指定安装到/usr/bin/pods下即可正常安装成功:
sudo gem install -n /usr/local/bin cocoapods
安装成功
g.安装Cocoapods 使用pod指定提示 "pod: command not found"

以上问题为本人目前遇到的 ,还请大家帮忙补充
CocoaPods的安装、使用、以及遇到的问题的更多相关文章
- iOS 最新版 CocoaPods 的安装流程
iOS 最新版 CocoaPods 的安装流程1.移除现有Ruby默认源$gem sources --remove https://rubygems.org/2.使用新的源$gem sources - ...
- 最新版 CocoaPods 的安装流程
iOS 最新版 CocoaPods 的安装流程 1.移除现有Ruby默认源 $gem sources --remove h ...
- Cocoapods的安装
1.先升级Gem sudo gem update --system 2.切换cocoapods的数据源 [先删除,再添加,查看] gem sources --remove https://rubyge ...
- Cocoapods的安装,卸载和使用
[一]Cocoapods的安装 (1)Cocoapods的官方网站为: https://cocoapods.org/ .如果你的电脑已经安装了Ruby开发环境,那么在终端(Terminal)中使用以下 ...
- OS10.11系统下 安装cocoapods 以及 安装cocoapods-xcode-plugin-master插件来加载三方框架
http://www.cnblogs.com/cheng923181/p/4883476.html OS10.11系统下 安装cocoapods 以及 安装cocoapods-xcode-plugin ...
- 【原】iOS学习46之第三方CocoaPods的安装和使用(通用方法)
本文主要说明CocoaPods的安装步骤.使用说明和常见的报错即解决方法. 1. CocoaPods 1> CocoaPods简介 CocoaPods是一个用来帮助我们管理第三方依赖库的工具. ...
- CocoaPods的安装(图文并茂)OS X 10.11 系统
这里是前言,可以跳过前言部分直接跳到后面"这里正式安装"开始看步骤: 系统:OS X EI Capitan 版本:10.11.2 开发工具:XCode:7.2 先给一个挺不错的关于 ...
- CocoaPods的安装及使用/利用开源库Diplomat实现分享及第三方登录/git的使用
<<史上最简洁版本>> 1.gem sources -l查看 当前的源 //1.1 sudo -i..以下都是以管理员的身份来操作的 2.gem sources --remov ...
- CocoaPods的安装[转载]
[转载] 原地址http://www.tuicool.com/articles/7VvuAr3 觉得很好,很有用 iOS 最新版 CocoaPods 的安装流程 1.移除现有Ruby默认源 $gem ...
随机推荐
- 多线程爬坑之路-Thread和Runable源码解析之基本方法的运用实例
前面的文章:多线程爬坑之路-学习多线程需要来了解哪些东西?(concurrent并发包的数据结构和线程池,Locks锁,Atomic原子类) 多线程爬坑之路-Thread和Runable源码解析 前面 ...
- Python高手之路【三】python基础之函数
基本数据类型补充: set 是一个无序且不重复的元素集合 class set(object): """ set() -> new empty set object ...
- C语言 · 数位分离
问题描述 编写一个程序,输入一个1000 以内的正整数,然后把这个整数的每一位数字都分离出来,并逐一地显示. 输入格式:输入只有一行,即一个1000以内的正整数. 输出格式:输出只有一行,即该整数的每 ...
- HTML kbd键盘元素
1. 说明 kbd :即Keyboard Input Element(键盘输入元素).表示键盘按键的语义元素,常用于网页上对快捷键.按键说明的场景. 样式规格:内联样式. 为了在页面上突出显示,可以给 ...
- 开源一个跨平台运行的服务插件 - TaskCore.MainForm
本次将要很大家分享的是一个跨平台运行的服务插件 - TaskCore.MainForm,此框架是使用.netcore来写的,现在netcore已经支持很多系统平台运行了,所以将以前的Task.Main ...
- JQuery easyUI DataGrid 创建复杂列表头(译)
» Create column groups in DataGrid The easyui DataGrid has ability to group columns, as the followin ...
- mysql进阶之存储过程
往往看别人的代码会有这样的感慨: 看不懂 理还乱 是离愁 别是一番滋味在心头 为什么要使用存储过程? 在mysql开发中使用存储过程的理由: 当希望在不同的应用程序或平台上执行相同的函数,或者封装特定 ...
- 设计模式之单例模式(Singleton)
设计模式之单例模式(Singleton) 设计模式是前辈的一些经验总结之后的精髓,学习设计模式可以针对不同的问题给出更加优雅的解答 单例模式可分为俩种:懒汉模式和饿汉模式.俩种模式分别有不同的优势和缺 ...
- arcgis api for js入门开发系列六地图分屏对比(含源代码)
上一篇实现了demo的地图标绘模块,本篇新增地图地图分屏对比模块,截图如下(源代码见文章底部): 对效果图的简单介绍一下,在demo只采用了两分屏对比,感兴趣的话,可以在两分屏的基础上拓展,修改css ...
- 数据库 DML、DDL、DCL区别 .
总体解释: DML(data manipulation language): 它们是SELECT.UPDATE.INSERT.DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的 ...