开源框架:CocoaPods 安装学习教程

转载 开源框架:CocoaPods

引言:

CocoaPods是一个可以帮你集中管理第三方库的开源项目,运行在Ruby的环境下,基于GitHub托管优势,你可以很方便的查阅目前依赖于CocoaPods的资源.

并且,CocoaPods是可靠,稳定,安全的.可以为你在使用第三方库资源时节省大部分的配置和部署时间.更专心的专注于Coding!

 

部署的环境:

硬件:Retina Macbook Pro 

软件:OS X Mountain Lion 10.8.2

Ruby版本:1.9.3-p385

 

参考文章:

1:如何安装Ruby(如果打不开请使用百度快照)

http://www.zikercn.com/node/41

2:如何使用CocoaPods

http://blog.devtang.com/blog/2012/12/02/use-cocoapod-to-manage-ios-lib-dependency/

3:Ruby中国针对2.0.0发布帖子:

http://ruby-china.org/topics/8896

4:如果安装失败,请参考下面两贴

http://stackoverflow.com/questions/9626729/how-do-you-install-build-ruby-1-9-3-on-osx-lion

http://stackoverflow.com/questions/14592945/cannot-compile-ruby-1-9-3/14594287#14594287

 

第一步:安装RVM

命令: 
curl -L get.rvm.io | bash -s stable

成功以后继续执行如下:

命令: source ~/.bashrc

命令: source ~/.bash_profile

然后查看rvm的版本:

命令: 
rvm -v

 

第二步开始安装Ruby:

在执行以下所有命令之前请确保你已经安装了Xcode. 否则将无法成功.

 

 

安装前检查可安装的Ruby版本:

命令:rvm list known

正常情况执行后,可以看到所有Ruby的版本,这里安装指定的版本:

在执行下面两个命令之前先,删除残留的Ruby版本:rvm remove 1.8.7 

命令:export CC=gcc

命令:rvm install 1.9.3-p385

 

如果以上命令安装失败,就关掉中断,直接执行第二行,失败了以后再来一次.

目前Ruby最新的版本是2.0 但是在我本机上面屡次安装失败. 但是使用CocoPods并不需要很高级的Ruby版本.

我在安装 1.9.3-p385中 顺利完成.

如果安装速度太慢可以使用淘宝提供一个加速链接来更新Ruby 

 

成功以后设置默认使用的Ruby版本 

命令:rvm use 1.9.3-p385  --default

 

不出意外就安装成功了.安装成功以后通过如下命令查看已经安装的Ruby版本:

命令:rvm list

检查一下Ruby当前使用的版本:

命令:ruby -v

检查一下Gem:

命令:gem -v

 

第三步,安装CocoaPods

接下来开始安装CocoaPods.在安装之前,还需要将XCode里的Command line工具安装好.如下图所示:

安装成功后以后回到Shell,输入如下命令:

命令:sudo gem install cocoapods

命令:pod setup

pod setup命令执行后原理是将Spec项目复制到当前用户的.cocoapods\master目录下,以后的查找、安装使用都是基于该本地目录的.

安装成功后,就可以尝试使用了,以后更新新版本的Spec项目只需要再次执行pod setup即可

 

使用Search命令来看看你需要的第三方库是否存在!

命令:pod search SDWebImage 

到此,CocoaPods的安装就完成了.

 

第四步,使用CocoaPods

接下来,你需要建立一个主工程.建立成功以后,再次启动终端, 利用cd命令进入到工程文件夹内,此时需要创建一个特殊的文本文件,命令如下:

命令: touch Podfile 创建

命令: open -e Podfile 打开

此时,Mac应该是自动打开记事本. 接下来就开始加入我们要使用的库了.

编制格式可以参考CocoaPods的官方文档

示例:

 

platform :ios,5.0pod 'SDWebImage'

上面的代码中:指定了平台最低支持的版本

pod通过Search查到的库 如果没有指定版本号,那么配置出来的版本是最新版.

对这个文本文件保存以后,执行如下命令:

命令:pod install 

在每次执行前请确保终端所处于的文件夹目录已经是当前目录. 否则将安装失败.

另外本次成功安装以后,如果 SDWebImage 的作者更新了它的库并提交到了CocoaPods里面,此时我们也想在项目中使用新版本的SDWebImage. 这个时候需要执行如下命令:

命令:pod update 

和pod install命令一样 需要将终端所处于的文件夹目录是当前Podfile文件所在的目录

执行后,CocoaPods首次会创建一个同工程名的工作空间(xcworkspace). 以后就打开这个工作空间来进行接下来的开发工作.

这里也证明了一点,以后新项目启动时,应该先配置和部署CocoaPods.

 

另外,如果指定了某个开源库的版本号,此时pod update 会忽略版本号, 所以需要使用pod install来安装指定的版本

 

 

Date:2013-05-13 23:24:47

今天用CocaPods的 pod install 命令时 出现如下错误:

The `master` repo requires CocoaPods 0.18.1

解决办法见此贴.

 

总结:

CocoaPods的部署与配置还是较为繁琐的,博文流程中记录的每一天都要去执行.不然都有可能产生失败.

 

 

题外话:

关于Spec

简单的说,Spec就是每个包在CocoaPods中的配置文件,其中包括Package的名字,版本号,每个版本对应的下载地址,编译时的参数等等。

这是该项目的地址:https://github.com/CocoaPods/Specs

在页面上有介绍如何创新新的包,可以Fork该项目,然后通过pull request提交所建的新包。

附上一篇详细的教程

http://ishalou.com/blog/2012/10/16/how-to-create-a-cocoapods-spec-file/

关于生成代码文档

详细见我的另外一篇教程:

http://blog.csdn.net/ysy441088327/article/details/7661785

转载于:https://www.cnblogs.com/zhangsongbai/p/3637141.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/461490.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SESSION 回收机制

session.gc_maxlifetime session.gc_probability session.gc_divisor session.gc_divisor 与 session.gc_probability 合起来定义了在每个会话初始化时启动 gc(garbage collection 垃圾回收)进程的概率。此概率用 gc_probability/gc_divisor 计算得来…

数据结构探险——线性表篇

以下内容源于慕课网的学习整理,如有侵权,请告知删除。 1、线性表 概念 机制的实现 2、顺序表 构造函数、析构函数 清空线性表,判空 求当前线性表长度,获取某个序号的元素 定位某个元素的位置 找前驱(找后驱类似的&…

Mysql优化之执行计划查看

我们经常说到mysql优化,优化中一种常见的方式就是对于经常查询的字段创建索引。那么mysql中有哪些索引类型呢? 一、索引分类1、普通索引:即一个索引只包含单个列,一个表可以有多个单列索引 2、唯一索引:索引列的值必须…

jmeter+Fiddler:通过Fiddler抓包生成jmeter脚本

Fiddler是目前最常用的抓包工具之一,它作为客户端和服务器端之间的代理,记录客户端和服务器之间的所有请求(http/https),可以针对特定的请求过滤,分析请求和响应的数据、设置断点、调试、修改请求的数据,甚至可以修改服…

数据结构探险——树篇

以下内容源于慕课网的学习整理,如有侵权,请告知删除。 树存在概念中,是对数组或者链表的一种操作方式的概念。 一、与树有关的一些基础概念 (1)树 有限节点的集合; (2)度 某个节点的…

grub rescue的修复方法

2019独角兽企业重金招聘Python工程师标准>>> 在win7下删除了ubuntu的swap交换空间的分区(大约6G左右,根据自己的实际分区情况决定)。重新启动电脑进入界面,直接显示: error:unknow filesystemgrub rescue&g…

jmeter强大的扩展插件!!

jmeter4.0以上版本,如jmeter5.1.1版本的集成插件,只需要在官网下下载“plugins-manager.jar”包,放在jmeter安装路径的lib/ext目录下即可使用。(但该jar包包含的插件,还不能满足所需的功能,如服务器系统资源…

数据结构探险——图篇

以下内容源于慕课网的学习整理,如有侵权,请告知删除。 1、图的相关概念 2、图的存储结构 第一种是用数组表达,第二三种用链表来表示有向图,最后一种链表来表示无向图。(1)邻接矩阵(有向无向都可…

jmeter+WebDriver:启动浏览器进行web自动化

无论是web自动化还是手机app自动化,WebDriver是Selenium的核心模块,jmeter WebDriver 仅支持Firefox、Chrome 和 HTML Unit驱动,暂不支持IE 驱动。 一、下载JMeterPlugins-WebDriver插件并配置分享我的网盘下载地址:https://pan.b…

LeetCode2——Add Two Numbers(两个链表中的数字相加,形成新链表)

鄙人不才,故收录LeetCode中的解法和代码。 题目: 参考解法: /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode(int x) : val(x), next(NULL) {}* };*/ class Solution { publi…

Linux基础(九)--定时任务

本文主要介绍了Linux中定时任务的相关知识。在日常中,有一些任务需要定时执行,例如:每天定时更新杀毒软件的数据库,每天定时执行数据清洗等脚本。这里就需要做定时任务。(1)概述在Linux中定时任务主要分为两…

【随感】tomorrow ,new semester ,finally i have time to read some books~

—————————youngLaker转载于:https://www.cnblogs.com/younglaker/archive/2012/12/30/2840129.html

LeetCode425——Add Strings(两个字符串中的数字相加(十进制或二进制),输出字符串形式的结果)

题目&#xff1a; 参考解法&#xff1a; class Solution { public:string addStrings(string num1, string num2) {if (num1.size() < num2.size()) return addStrings(num2, num1);//这里并不是递归&#xff0c;只是为了使得第一个参数的长度是最大的int carry 0, i num1…

yum只下载软件不安装的两种方法

2019独角兽企业重金招聘Python工程师标准>>> 今天来说下在CentOS下下载软件&#xff0c;不安装的方法&#xff1a; 方法一&#xff1a;通过yum自带一个工具&#xff1a;yumdownloader [rootweb1 ~]# rpm -qa |grep yum-utils [rootweb1 ~]# yum -y install yum-ut…

[转载] New Concept English 1——Lesson 7 Are you a teacher?

转载于:https://www.cnblogs.com/6DAN_HUST/archive/2012/12/31/2840653.html

LeetCode445——Add Two Numbers II(两个链表数据相加(从链表尾部开始),返回新链表)

题目&#xff1a; 参考解法&#xff1a; /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode(int x) : val(x), next(NULL) {}* };*/ class Solution { public:ListNode* addTwoNumbers(ListNode* l1, ListNode* l…

linux下制作codeblocks绿色版,并集成devhelp

Codeblocks更新到12.11了,可是软件中心还是10.01的.在codeblocks的官网找了一下发现了ubnutu的ppa, sudo apt-add-repository ppa:pasgui/ppa,可是不知道是否和以前的配置冲突,还是其它原因,编辑器居然没有多标签.于是想做一个绿色试试.到其wiki上以portable搜索 果然找到了方法…

appium+python自动化项目实战(二):项目工程结构

废话不多说&#xff0c;直接上图&#xff1a; nose.cfg配置文件里&#xff0c;可以指定执行的测试用例、生成测试报告等。以后将详细介绍。 转载于:https://www.cnblogs.com/luihengk/p/11414208.html

大数据批量插入小练习_SqlServer

这几天把sqlserver批量插入也整理了一下&#xff0c;性能方面有很大的提高&#xff0c;下面直接上代码using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.IO;using System.Threading;using Syste…

LeetCode371——Sum of Two Integers(不用+)

class Solution { public:int getSum(int a, int b) {int sum a;while (b ! 0){sum a ^ b;//calculate sum of a and b without thinking the carry b (a & b) << 1;//calculate the carrya sum;//add sum(without carry) and carry}return sum;} };