002-CocoaPods简析

上一篇:001-NSRunLoop及CFRunLoop浅析

一、前记

尽管公司里的项目没有用到CocoaPods(综合考虑的结果),但最近想看看特定版本的库,用下CocoaPods还是方便一点。一年没用这个了,需要回顾一下,记下这篇,以后要用可以来看。

二、安装

1、可用的源

打开终端输入:

gem sources

如果是:

https://rubygems.org/

这个被墙了,用不了。需要换一个源,先删了没用的

sudo gem sources --remove (错误的源)

然后再添加正确的源:

sudo sources -a https://ruby.taobao.org/

2、安装CocoaPods

sudo gem install CocoaPods

这里需要等待安装

安装结束后,有提示,且

pod 

输入pod 加回车,会有帮助显示,这表示安装成功

如果显示command not found 表示没有安装成功

3、使用CocoaPods

  • 打开终端,输入:cd (空格) (项目拖进来)
  • 输入pod init (为了生成podFile,已经有了就不用此步骤了)
  • “#”是注释作用
  • platform :ios, ‘8.0’表示最低版本兼容8.0
  • use_frameworks! 支持swift语言
  • 配置写法 pod ‘第三方方库名称’,这个配置 写在 target 和 end 之间

4、更新

本来是使用命令

pod update

由于被墙,需要使用下面这个命令更新

pod update --verbose --no-repo-update

三、问题来了

1、历史描述

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

2、gem老化问题,可以试着升级gem

sudo gem update --system

3、使用CocoaPods镜像索引

所有的项目的Podspec文件都托管在 https://github.com/CocoaPods/Specs 第一次执行pod setup时,CocoaPods会将这些podspec索引文件更新到本地的 ~/.cocoapods/目录下,这个索引文件比较大,有80M左右。所以第一次更新时非常慢。

有人在gitcafe和oschina上建立了CocoaPods索引库的镜像,因为gitcafe和oschina都是国内的服务器,所以在执行索引更新操作时,会快很多。如下操作可以将CocoaPods设置成使用gitcafe镜像:

第一步:删除master

pod repo remove master

第二步:将以上代码中的 https://gitcafe.com/akuandev/Specs.git 替换成 http://git.oschina.net/akuandev/Specs.git 即可使用oschina上的镜像。

pod repo add master https://gitcafe.com/akuandev/Specs.git

第三步: 更新

4、镜像不可用问题

因为有人说淘宝源不能用了,虽然我现在使用时还能用,为了以防万一,还是要有解决方案

第一种安装:git clone方法安装cocoapods

在终端中,进入该目录

cd ~/.cocoapods/repos

若没有以上目录,执行下面指令,出现.cocoapods的目录后可以ctrl+c终止安装。sudo gem install cocoapods是常规的安装方法,不过现在只是用来建立一下.cocoapods目录。手动建立.cocoapods目录应该也是可以的,不过没试过。如果能进入~/.cocoapods/repos的目录就忽略下面一条指令。

sudo gem install cocoapods

克隆一个Specs库,在终端必须进入到~/.cocoapods/repos的目录才执行以下命令。

git clone https://github.com/CocoaPods/Specs

完成后,执行open .打开当前目录repos

open .

然后把Specs目录改名为master即可。(~/.cocoapods/repos的目录层级)

如果gitclone还慢的话,直接上 https://github.com/CocoaPods/Specs 点击下载。根据上面的目录结构图,放对了就好。

安装中可能遇到的问题:

运行pod后显示:"pod: command not found"的错误。赋予/usr/local/bin给予执行与读取权限,执行以下命令。若不行执行sudo chmod 777 /usr/local/bin/。

sudo chmod 700 /usr/local/bin/

安装cocoa pods后,在终端执行pod search第三方框架时出错:[!] Unable to find a pod with name, author, summary, ordescriptionmatching AFNetworking

解决方案:执行

rm ~/Library/Caches/CocoaPods/search_index.json

然后再执行pod search第三方框架

pod search afnetworking

按q退出搜索。

第二种安装:
添加新镜像 https://gems.ruby-china.org

gem sources -a https://gems.ruby-china.org/

安装:苹果系统升级 OS X EL Capitan 后改为

sudo gem install -n /usr/local/bin cocoapods
pod setup

更新gem

sudo gem update --system

新建文件 vim “Podfile” (终端vim文件 按 i 可编辑 ,esc 退出编辑,:wq 可保存退出)

vim Podfile

5、执行pod install还是pod update都卡

原因在于当执行以上两个命令的时候会升级CocoaPods的spec仓库,加一个参数可以省略这一步,然后速度就会提升不少。加参数的命令如下:

pod install --verbose --no-repo-update
pod update --verbose --no-repo-update

6、搜索第三方出现-bash: pod: command not found的错误

解决方案:命令一:

sudo gem install -n /usr/local/bin cocoapods/

命令二:

sudo chmod +rx /usr/local/bin

7、上述第4点第一种方案,完全没有安装过的用户是没有~/.cocoapods目录的

可以采用第二种方案

四、https://gems.ruby-china.org/ 访问不了

使用sudo gem update --system更新时

错误为:
Error fetching https://gems.ruby-china.org/: bad response Not Found 404 (https://gems.ruby-china.org/specs.4.8.gz)

https://gems.ruby-china.org/ 访问不了

域名改为

https://gems.ruby-china.com/

所以替换 ruby-china 提供镜像,正确的操作是:

$ sudo gem update --system

$ gem sources --remove https://rubygems.org/

$ gem sources --remove https://ruby.taobao.org/ //如果安装了淘宝的镜像

//等有反应之后再敲入以下命令

gem sources -a https://gems.ruby-china.com/

为了验证你的Ruby镜像是并且仅是ruby-china,可以用以下命令查看:

$ gem sources -l

*** CURRENT SOURCES ***

https://gems.ruby-china.com

下一篇:003-移动支付01-微信支付-账号申请

你可能感兴趣的:(002-CocoaPods简析)