CocoaPods安装和使用

*CocoaPods安装

1. 替换ruby源

1.1 CocoaPods是基于ruby ecosystem的,需要ruby环境,使用ruby的gem命令。所以我们的系统要有ruby环境。然而Mac系统默认会安装好ruby环境。可在终端 ruby -v 查看ruby版本:输出如下图

ruby版本

1.2 查看ruby源, 终端输入 gem sources -l,显示如下:(现在镜像使用了https了,截图有点老,下面有改正)

ruby源

如果你执行后,输出为:

*** CURRENT SOURCES ***

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

那么你需要更换到ruby-china的镜像,因为https://gems.ruby-china.org/这个源在墙内是访问不到的。所以你需要先移除这个镜像,然后添加 ruby-china的镜像,(我这里显示的是源为https://gems.ruby-china.org/,所以下面就以这个源为例,删除和添加新的源。如果你的源已经是https://gems.ruby-china.com,就不需要换了。如果不是请安下面的步骤删除和添加新源)步骤如下。

1>.移除掉原有的源

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

2>.淘宝的源已经不更新维护了,现在使用ruby-china的源哦

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

3>.验证是否替换成功,如果显示上面截图的输出就说明正确:

 gem sources -l

注意:如果gem sources -l 后有多个源,只使用ruby-china这一个源就行了,其他的删掉

2. 更新升级 Gem 版本

  1. 更新升级gem,gem不更新可能导致安装pod失败

    sudo gem update --system
    
  2. 查看gem版本

    gem -v
    

输出如下:

gem版本

3. 安装CocoaPods

  1. 如果mac系统为OS X 10.11 以前安装命令为:

        sudo gem install cocoapods    // 安装cocoapods
    

    Mac系统为OS X EL Capitan安装命令为:

    sudo gem install -n /usr/local/bin cocoapods
    
  2. 等待其安装成功,用命令pod --version查看是否安装成功,如果成功会显示pod的版本。


    pod版本

如果你本地有多个xcode版本,安装时需要你指定下安装路径,不然会报错。报错信息如下:

 [!] /usr/bin/git clone https://github.com/CocoaPods/Specs.git master
Cloning into 'master'...
error: RPC failed; curl 56 SSLRead() return error -36
fatal: The remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed

解决方法: 安装cocoapods 时使用 sudo xcode-select -switch 路径。比如:

  1. 打印当前xcode的路径
   xcode-select --print-path

输出:

/Applications/Xcode.app/Contents/Developer
  1. 然后在执行下面的安装命令:
sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer

如果你xcode的名称改了例如:这时你要这样找到xcode的路径

xcode应用名称

先在终端输入”sudo xcode-select -switch “,然后,打开Xcode—>右键显示包内容,找到Developer文件夹拖到终端里面
这时安装命令行如下:

sudo xcode-select -switch /Applications/Xcode 7.3.1.app/Contents/Developer

小知识:如果想安装指定版本,使用如下

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

安装最新的release beta版本

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

如果你想卸载CocoaPods怎么办?看下面:(具体卸载流程,可以自己百度下,下面只供参考)

 //卸载CocoaPods
sudo gem uninstall cocoapods

4. 更新Podspec索引文件

安装成功后 执行pod setup:

pod setup

pod setup作用

将所有第三方的Podspec索引文件更新到本地的~/.cocoapods/repos目录下。所有的第三方开源库的Podspec文件都托管在https://github.com/CocoaPods/Specs,我们需要把这个Podspec文件保存到本地,这样才能让我们使用命令pod search 开源库搜索一个开源库,怎样才能把github上的Podspec文件保存本地呢?那就是 pod setup
执行pod setup时,CocoaPods 会将第三方的podspec索引文件更新到本地的~/.cocoapods/repos目录下。
但是第一次执行pod setup时,这个github的Podspec索引文件比较大,有 300M 左右(以后会越来越大的),所以第一次更新时非常慢.要耐心等待…..

最后当出现 Setup completed 表示setup完成。

如果遇到如下报错

[!] /usr/bin/git clone https://github.com/CocoaPods/Specs.git master --progress

Cloning into 'master'...
remote: Counting objects: 2016093, done.        
remote: Compressing objects: 100% (555/555), done.        
error: RPC failed; curl 56 LibreSSL SSL_read: SSL_ERROR_SYSCALL, errno 54
fatal: The remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed

可能是Git的传输字节限制引起的,这时候使用 git config -l,查看Git配置,如下图,红色框是我配置的传输字节大小。

字节限制

解决方法:修改 传输字节限制,使用以下方法。后面的限制数字,可以自己定大小(524288000,相当于500M)
git config --global http.postBuffer 1048576000
执行后在 git config -l,看看是否修改成功。

如果遇到如下报错

  error: RPC failed; curl 18 transfer closed with outstanding read data remaining
  fatal: The remote end hung up unexpectedly
  fatal: early EOF
  fatal: index-pack failed

解决方法:更换镜像下载地址

1.进入pod目录

cd ~/.cocoapods/repos 

2.移除master

pod repo remove master

3.添加清华镜像

pod repo add master https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git

4.更新

pod repo update

如果第三步没有成功,(有的版本CocoaPods 不允许用pod repo add直接添加master库了)可以使用下面的方法

1.进入pod目录

cd ~/.cocoapods/repos 

2.移除master

pod repo remove master

3.添加清华镜像

git clone https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git master

上述步骤成功后,需要进入自己的工程,在自己工程的podFile第一行加上:(这个代表你从哪里拉取Git代码)

source 'https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git'

*CocoaPods的使用方法

1、安装完以后,终端输入:

 pod search AFNetworking

成功后会,显示AFNetworking的相关信息 (注意:要在根目录下使用pod search,不要进入那个文件夹下使用。),如果你的pod 版本是1.8以上的时候,pod search 会出现以下错误 :[!] CDN: trunk Repo update failed (没有的请忽略),解决方法在下面的第三步,新建一个名为Podfile的文件里

2、进入项目目录 cd 文件路径

3、新建一个名为Podfile的文件

   touch Podfile
在这里插入图片描述

touch Podfile是建一个空白的文件,文件名是Podfile
执行完后可以在项目文件夹下看到这个文件,如下:


4、 编辑 Podfile文件

编辑文件有2中方法,第一种:直接双击文件打开,输入以下内容,保存

platform :ios, '7.0'
target 'SwiftFirst' do
pod 'AFNetworking', '~> 3.1.0'
end

其中 target 'SwiftFirst’ do 中的SwiftFirst是你的项目名称,platform :ios, ‘7.0' 支持最低的ios平台,pod 'AFNetworking', '~> 3.1.0’ 安装AFNetworking 3.1.0 版本,安装那个版本需要先pod search 这个第三方库,如果搜索不到,安装会失败

第二种使用终端:(推荐使用)
还是在项目目录下,输入vim Podfile,然后 按键盘的“i”键 编辑,输入上面的文本内容:

在这里插入图片描述

编辑完成后想要退出保存步骤:先按左上角的esc键,再按:键,再输入wq,点击回车,就保存并退出去了

注意:如果你pod版本再1.8 以上,pod search 出现以下错误 :[!] CDN: trunk Repo update failed (没有的请忽略)时。解决方法如下:

  1. podfile文件中指定source源为master,(写在第一行):
source 'https://github.com/CocoaPods/Specs.git'
  1. cd到项目目录下,执行pod repo remove trunk移除trunk源
pod repo remove trunk
  1. cd --到根目录下,在执行pod search AFNetworking,就能搜到AFNetworking。

参考链接:[!] CDN: trunk Repo update failed

5、 下载第三方库

注意安装的时候,最好把xcode先关掉,进入项目文件夹下,执行 pod install

pod install

当出现 Pod installation complete 的时候,说明成功了,这时候打开项目文件夹,发现多了几个文件,如下

这时候双击打开后缀名为.xcworkspace文件,就可以看到你引入的第三方库了


感谢以下作者的文章,如果有什么不足,欢迎下方指正。

参考链接:
安装CocoaPods报"RPC failed; curl 18 transfer closed with outstanding read data remaining".
Cocopods安装和使用教程.
安装CocoaPods步骤.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,294评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,493评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,790评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,595评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,718评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,906评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,053评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,797评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,250评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,570评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,711评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,388评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,018评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,796评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,023评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,461评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,595评论 2 350