[cocoaPods]cocoaPods安装与使用

原创 2015年11月20日 11:41:29

cocoaPods使用异常 2016.07.27更新

最近将macOS系统升级到Capitan后,发现原来cocoaPods的所有功能都不能够使用了,出现如下问题:

ERROR:  While executing gem ... (Errno::EPERM)
    Operation not permitted - /usr/bin/pod

原因

原因是Capitan全面开启了 System Integrity Protection (SIP) —— 系统完整性保护技术,因此进行一些受保护的文件目录下的读写不被允许。

解决方法:

  • 重新启动系统,按住Option键→选择RecoveryHD(或者按住cmd+R)
  • 进入系统后,启动Terminal,输入如下代码,临时关闭SIP,在安装完成后在开启SIP
关闭SIP:csrutil disable
开启SIP:csrutil enable
  1. El Capitan 中 SIP 介绍
  2. 如何关闭OSX 10.11 SIP (System Integrity Protection)

之前使用库一般是直接从github上面clone下来,迁移到项目中去,但是当使用的第三方库太多的时候,就难以管理了。比如库升级版本、删除添加库等。cocoaPods是解决该问题的绝佳帮手。实习的时候就体验过了。但是期间也遇到了诸多使用问题,在此总结要点,以备后面查看。

安装

打开terminal,输入下面代码,然后就开始安装了

sudo gem install cocoapods

然而也许你会遇到下面的问题

ERROR: Could not find a valid gem 'cocoapods' (>= 0), here is why:
Unable to download data from https://rubygems.org/ - Errno::ECONNREFUSED: Connection refused - connect(2) (https://rubygems.org/quick/Marshal.4.8/cocoapods-0.37.2.gemspec.rz)
ERROR: Possible alternatives: cocoapods

这是你就需要更改一下rubygems的服务器地址,因为其源地址https://rubygems.org/ 使用亚马逊云服务被墙了,taobao就弄了一个rubygems的镜像,terminal敲入如下代码

gem sources --remove https://rubygems.org/
gem sources -a http://ruby.taobao.org/

你可以用如下语句查看软件源的地址

gem sources -l

也许你的gem太老了,那就需要升级一下gem

sudo gem update --system

安装好cocoaPods后,你就可以pod setup把第三方库的镜像索引下载到本地啦

pod setup

这里有点小技巧,你可以通过如下代码查看pod setup的下载进度

cd ~/.cocoapods
du -sh *

//每次执行会输出已下载的文件大小
229M    repos

但是也许你等了许久,大小还是丝毫不动,这时候你就要考虑换一下cocoaPods的镜像源了,默认情况所有的Podspec的文件都托管在https://github.com/CocoaPods/Specs 上,后来有个开发者在oschina(gitcafe那个镜像源笔者在安装的时候已经不在了)建立了cocoaPods索引库镜像。国内的服务器当然会更快些,请执行如下操作

pod repo remove master
pod repo add master http://git.oschina.net/akuandev/Specs.git
pod repo update

然而笔者在安装的时候还是遇到了如下问题,关键是网上还没有类似的情况,查了下什么http 504是网关问题,有可能网络服务器不响应,也有可能是电脑设置了代理。

[!] /usr/local/bin/git clone http://git.oschina.net/akuandev/Specs.git master

Cloning into 'master'...
error: RPC failed; result=22, HTTP code = 504
fatal: The remote end hung up unexpectedly

于是换网络,接着做了如下操作
1. 还原mac网络配置,查了老半天只能恢复出厂设置,在不知道如何正确还原网络设置的情况下,我想起breakwall有个还原网络设置的功能,于是就求助于它。
2. 然并卵,接着又觉得会不会是git没有配置错误的问题,于是重新进行git的ssh-key配置

是的,经过上述折腾,我总算是terminal在刷刷刷得输出了,也许真的是因为网络问题呢T_T,直到输出Setup completed就安装完成

Setting up CocoaPods master repo
Updating da613df..1e43f0d
Fast-forward
......
Checking out files: 100% (1311/1311), done.
Setup completed

然后你就可以执行以下语句看看是否有结果了

pod search AFNetworking

使用

首先你要为你的项目创建一个Podfile文件,记住该文件没有拓展名,你要cd 进你的项目目录,vi Podfile,如果有文件系统会帮你打开,如果没文件系统会帮你创建一个新文件,按“i”键进入insert模式

cd 项目目录(比如~/documents/workspace/VRPVisual)
vi Podfile

关于vi是linux下面的命令,你可以参考《 Linux vi命令 创建文件
现在可以输入文件内容了,比如下面,具体语法如何,请参考《the Podfile

platform :ios
pod 'SVProgressHUD'
pod 'JSONKit', '~> 1.4'

假如你不知道第三方库的版本,你可以执行查询语句

pod search 第三方库名

好了,这时候你需要按下”esc”键,退出输入模式,按“:wq”保存退出或“:q!”不保存强制退出,你就可以看到项目文件加下面多了一个Podfile文件,这时你可以执行下面语句加载第三方库了(要在项目下有Podfile文件的文件夹中执行)

pod install
//每次在修改Podfile文件后需要执行一次
pod update

这时你需要打开项目中的 .xcworkspace 后缀文件,然后你就会发现xcode项目导航栏中出现了pod的文件夹,大功告成!

贡献

你也可以把你牛逼的代码分享给cocoaPods,这里有个教程贴《如何将你的iOS代码分享到CocoaPod进行管理》、《Making a CocoaPod

参考文章:
http://blog.devtang.com/blog/2014/05/25/use-cocoapod-to-manage-ios-lib-dependency/

相关文章推荐

CocoaPods安装使用

  • 2016年01月05日 10:36
  • 155KB
  • 下载

安装ruby环境(使用cocoaPods)

  • 2015年10月27日 10:11
  • 199KB
  • 下载

CocoaPods安装和使用以及常见问题的解答

由于公司的项目不是很大,用到的第三方不是特别多,再加上之前安装CocoaPods出现了错误,没有安装成功,所以一直就没有用它。现在专门研究了一下它,把从安装到使用中遇到的问题详细的贴出来,希望能帮到你...

CocoaPods安装和使用教程

  • 2016年02月15日 14:04
  • 104KB
  • 下载

CocoaPods安装和使用副本.pdf

  • 2015年10月19日 10:36
  • 1.36MB
  • 下载

2、CocoaPods插件的安装和使用教程(插件版本)

CocoaPods插件的安装和使用教程   一、CocoaPods是什么?     CocoaPods是第三方库的一个管理工具,可以用于下载第三方库和更新第三方库。我们可以把它当作一个插件安装在...

cocoapods安装使用

  • 2017年06月27日 10:18
  • 608KB
  • 下载

IOS CocoaPods的安装与使用教程

  • 2017年03月21日 10:05
  • 984KB
  • 下载

CocoaPods安装和使用教程

CocoaPods安装和使用教程 Code4App 原创文章。转载请注明出处:http://code4app.com/article/cocoapods-install-usage 目录 ...
  • iunion
  • iunion
  • 2013年11月28日 18:47
  • 162739

Cocoapods的安装与使用

  • 2016年09月19日 10:43
  • 2.01MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[cocoaPods]cocoaPods安装与使用
举报原因:
原因补充:

(最多只允许输入30个字)