关闭

[cocoaPods]cocoaPods安装与使用

标签: 终端githubcocoaPods
988人阅读 评论(0) 收藏 举报
分类:

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/

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:82379次
    • 积分:2265
    • 等级:
    • 排名:千里之外
    • 原创:127篇
    • 转载:19篇
    • 译文:0篇
    • 评论:5条
    最新评论