从零开始学习CocoaPods安装和使用
从零开始学习CocoaPods安装和使用
CocoaPods是什么?
当你开发iOS应用时,会经常使用到很多第三方开源类库,比如JSONKit,AFNetWorking等等。可能某个类库又用到其他类库,所以要使用它,必须得另外下载其他类库,而其他类库又用到其他类库,“子子孙孙无穷尽也”,这也许是比较特殊的情况。总之小编的意思就是,手动一个个去下载所需类库十分麻烦。另外一种常见情况是,你项目中用到的类库有更新,你必须得重新下载新版本,重新加入到项目中,十分麻烦。如果能有什么工具能解决这些恼人的问题,那将“善莫大焉”。所以,你需要 CocoaPods。
CocoaPods应该是iOS最常用最有名的类库管理工具了,上述两个烦人的问题,通过cocoaPods,只需要一行命令就可以完全解决,当然前提是你必须正确设置它。重要的是,绝大部分有名的开源类库,都支持CocoaPods。所以,作为iOS程序员的我们,掌握CocoaPods的使用是必不可少的基本技能了。
iOS开发时,项目中会引用许多第三方库,CocoaPods(https://github.com/CocoaPods/CocoaPods)可以用来方便的统一管理这些第三方库。
如何下载和安装CocoaPods?
由于网上的教程基本都大同小异,但细节之处还不是很完善,所以借机会在这里补充下:
注意:要使用CocoaPods,那就要下载安装它,而下载安装CocoaPods需要Ruby语言编译环境。(有关Ruby语言的简介见百度百科)
1、Ruby环境搭建
值得庆幸的是,苹果的Mac OS X系统自带了ruby语言环境的(Python也自带了),在Mac终端输入 ruby -v 命令可以查看当前ruby版本。
Mac OS本身自带Ruby可能比较老旧,但还是更新一下保险,因为我第一次安装在没有更新Ruby的情况下安装CocoaPods就失败了。
a 查看下当前ruby版本:
打开终端输入 ruby -v(确实安装了,不过用这个版本接下来工作失败了,所以更新下ruby)。终端显示如下:
- ritekiMac-mini:PodTest lucky$ ruby -v
- ruby 1.8.7 (2012-02-08 patchlevel 358) [universal-darwin12.0]
- ritekiMac-mini:PodTest lucky$
b 更新ruby:
终端输入如下命令(把Ruby镜像指向taobao提供的Ruby镜像地址,避免被墙,你懂得)
gem sources --remove https://rubygems.org/
gem sources -a https://ruby.taobao.org/ (注意淘宝已更新使用https了)
gem sources -l (用来检查淘宝提供的Ruby镜像地址是否设置成功)
- ritekiMac-mini:~ lucky$ gem sources --remove https://rubygems.org/
- https://rubygems.org/ removed from sources
- ritekiMac-mini:~ lucky$ gem sources -a http://ruby.taobao.org/
- http://ruby.taobao.org/ added to sources
- ritekiMac-mini:~ lucky$ gem sources -l
- *** CURRENT SOURCES ***
https://ruby.taobao.org/
2、下载安装CocoaPods
完成第一步Ruby环境配置后,接着在Mac终端输入: sudo gem install cocoapods 等待几秒钟,期间可能会提示你输入电脑的管理员密码,这个可以理解,用过Mac系统的都知道,在安装应用软件之前,都会提示你输入管理员密码的!
- ritekiMac-mini:~ lucky$ sudo gem install cocoapods
- CHANGELOG:
- ## 0.32.1
- ##### Bug Fixes
- * Fixed the Podfile `default_subspec` attribute in nested subspecs.
- [Fabio Pelosin][irrationalfab]
- \ [#2050](https://github.com/CocoaPods/CocoaPods/issues/2050)
- Successfully installed cocoapods-0.32.1
- Installing ri documentation for cocoapods-0.32.1
- /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rdoc/rdoc.rb:280: warning: conflicting chdir during another chdir block
- /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rdoc/rdoc.rb:287: warning: conflicting chdir during another chdir block
- Done installing documentation for cocoapods after 10 seconds
- 1 gem installed
这样就下载安装好了CocoaPods,看到这里,你心里会不会说,我靠!太爽了,这么容易就可以下载并且安装好了!是的,我也是这么想的。CocoPods就是这么简单,使用也十分简单。继续往下看吧。
3、使用CocoaPods
a. 使用Xcode在桌面上新建一个项目,名字PodTest
b. 在终端中,cd到项目总目录cd /Users/lucky/Desktop/PodTest(注意:一定是包含PodTest文件夹、PodTest.xcodeproj的那个总目录)
c. 建立Podfile配置文件: 在终端输入 touch Podfile 回车 (使用 vim Podfile也可以创建)
platform :ios, '6.0'
pod 'MBProgressHUD', '~> 0.9.2'
注意,这段文字不是凭空生成的,可以在MBProgressHUD的github页面找到。这两句文字的意思是,当前AFNetworking支持的iOS最低版本是iOS 6.0, 要下载的MBProgressHUD版本是0.9.2
然后按Esc,并且输入 : 号,进入vim命令模式,然后在 : 后边输入wq后回车,终端就会保存并退出vim编辑器。
f. 打开PodTest项目,发现总目录中多一个Podfile文件
g. 激动人心的时刻到了:
在终端 cd到项目总目录,然后输入 pod install,等待一会,大约3分钟。
h. 现在打开项目PodTest根目录文件夹,点击 PodTest.xcworkspace打开项目,注意上面终端中提示的那句话
From now on use `PodTest.xcworkspace`. 所以再也不要点击 PodTest.xodeproj打开项目了:
i. 打开项目后看到如下项目结构,试着导入头文件测试一下:
运行结果如下:
4. 补充知识:
1、如果需要同时导入多个第三方库文件时该怎么操作呢 ?
这就需要修改Podfile了,就是用vim编辑的那个保存在项目根目录中的文件,修改完了Podfile文件,需要重新执行一次pod install命令。
例如:
platform :ios
pod 'JSONKit', '~> 1.4'
pod 'AFNetworking', '~> 2.0'
2、如果不知道即将导入库文件的版本,此时可以利用CocoaPods的搜索功能去查找,也可以直接去gitHub上搜索该第三方库。
CocoaPods的搜索:打开终端输入命令:pod search MBProgressHUD 界面如下:
从零开始学习CocoaPods安装和使用的更多相关文章
- 从零开始学习jQuery (一) 入门篇
本系列文章导航 从零开始学习jQuery (一) 入门篇 一.摘要 本系列文章将带您进入jQuery的精彩世界, 其中有很多作者具体的使用经验和解决方案, 即使你会使用jQuery也能在阅读中发现些 ...
- 从零开始学习Hadoop--前言
Hadoop是最著名使用最广泛的分布式大数据处理框架,它是用Java开发的. 这本书有一个明确的目标:只要有一台能上网的计算机,就可以让读者在最短的时间内,学会Hadoop的初级开发.所以,这本书只讲 ...
- 从零开始学习jQuery (一) 开天辟地入门篇
一.摘要 本系列文章将带您进入jQuery的精彩世界, 其中有很多作者具体的使用经验和解决方案, 即使你会使用jQuery也能在阅读中发现些许秘籍. 本篇文章是入门第一篇, 主要是简单介绍jQuer ...
- iOS工具】rvm、Ruby环境和CocoaPods安装使用及相关报错问题解决
〇.前言 <p>在iOS开发中 CocoaPods作为库依赖管理工具就是一把利器. 有了 CocoaPods则无需再通过拖 第三方库及第三方库所依赖的 framework静态库到项目中等麻 ...
- 从零开始学习 asp.net core 2.1 web api 后端api基础框架(二)-创建项目
原文:从零开始学习 asp.net core 2.1 web api 后端api基础框架(二)-创建项目 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.ne ...
- 从零开始学习docker之在docker中搭建redis(集群)
docker搭建redis集群 docker-compose是以多容器的方式启动,非常适合用来启动集群 一.环境准备 云环境:CentOS 7.6 64位 二.安装docker-compose #需要 ...
- 从零开始学习JAVA(入门基础)
目录 博主从零开始学习JAVA(入门基础) 1.搭建JAVA开发环境 卸载JDK(未安装的请忽略) 安装JDK 2.编程语言中,何为编译型与解释型 编译型 解释型 3.第一个JAVA应用程序 4.JA ...
- ASP.NET从零开始学习EF的增删改查
ASP.NET从零开始学习EF的增删改查 最近辞职了,但是离真正的离职还有一段时间,趁着这段空档期,总想着写些东西,想来想去,也不是很明确到底想写个啥,但是闲着也是够 ...
- 最新的 cocoaPods 安装方法
经过努力终于发现了最新的 解决cocoaPods安装的办法: taobao Gems 源已停止维护,现由 ruby-china 提供镜像服务 第一步:安装rvm, 不管需不需要升级ruby,rvm可以 ...
随机推荐
- Java List集合和哈希表
List集合和Set集合,先来看List集合. List集合存储元素的特点: 1.有序(List集合中的元素有下标):存进去是什么样,取出来还是什么样 2.可重复 可以结合以下的简单代码来看一看. i ...
- Tomcat Post请求大小限制
理论上讲,POST是没有大小限制的.HTTP协议规范也没有进行大小限制,起限制作用的是服务器的处理程序的处理能力. 如:在Tomcat下取消POST大小的限制(Tomcat默认2M): 打开tomca ...
- IO流之打印流
打印流的概述(只有输出就是只与数据目的有关,不会抛出IO异常) 打印流添加输出数据的功能,使它们能够方便地打印各种数据值表示形式. 打印流根据流的分类: l 字节打印流 PrintStream l ...
- Django 模型层之单表操作
一.单表操作之创建表 在app的models.py文件中创建模型: from django.db import models class Book(models.Model): id = models ...
- JavaScript的进阶之路(二)函数简介,变量、作用域和内存问题
<h3>ECMAScript中函数不存在函数签名的概念,没有重载</h3><h3>无需指定返回值,可以在任何时候返回任何值.未指定返回值的函数,返回的是一个特殊的u ...
- Python基础-map/reduce/filter
一.map Python内置函数,用法及说明如下: class map(object): """ map(func, *iterables) --> map obj ...
- USG防火墙基础
http://support.huawei.com/huaweiconnect/enterprise/thread-331003.html 华为防火墙产品线 安全区域 1. 默认防火墙区域 T ...
- 使用qt帮助 查看样式表stylesheet的帮助文档
QCreactor帮助文档中搜索的关键字 Qt Style Sheets Examples 有所有控件的样式例子 Qt Style Sheets Reference 控件的所有 ...
- SQL Server ->> 更改服务器时区对SQL Server Agent服务器的影响
昨天在把服务器的时区从PST改成UTC后,发现Job都不跑了.因为SQL Server Agent记录Job的历史运行时间是不区分时区的,也就是意味着我改后出现了最后一条运行记录比倒数第二条时间还要早 ...
- SVN升级到1.8后 Upgrade working copy
SVN升级到1.8后没法用了,不能提交,提示说要SVN Upgrade working copy, 但是半天在根目录和.svn所在文件夹上面右键都没有找到这个菜单. 坑爹的…… 最后找到解决办法是:重 ...