博客> CocoaPods的安装和使用教程
CocoaPods的安装和使用教程
2017-12-14 16:02 评论:0 阅读:239 小宇宙大星球
ios xcode cocoapods 安装 使用

cocoapods官网:https://guides.cocoapods.org

最近安装CocoaPods,出现很多问题,在网上查找资料最终解决了。特意整理了一下最新的教程,并亲测成功。taobao Gems 源已停止维护,现由 ruby-china 提供镜像服务。

一、什么是CocoaPods

每种语言发展到一个阶段,就会出现相应的依赖管理工具,例如 Java 语言的 Maven,nodejs 的 npm。随着 iOS 开发者的增多,业界也出现了为 iOS 程序提供依赖管理的工具,它的名字叫做:CocoaPods。

CocoaPods项目的源码 在 Github 上管理。该项目开始于 2011 年 8 月 12 日,经过多年发展,现在已经成为 iOS 开发事实上的依赖管理标准工具。开发 iOS 项目不可避免地要使用第三方开源库,CocoaPods 的出现使得我们可以节省设置和更新第三方开源库的时间。

二、为什么要使用CocoaPods 在使用CocoaPods之前,开发项目需要用到第三方开源库的时候,我们需要

1.把开源库的源代码复制到项目中

2.添加一些依赖框架和动态库

3.设置-ObjC,-fno-objc-arc等参数

4.管理他们的更新

在使用CocoaPods后,我们只需要把用到的开源库放到一个名为Podfile的文件中,然后执行pod install就可以了,Cocoapods就会自动将这些第三方开源库的源码下载下来,并且为我们的工程设置好响应的系统依赖和编译参数。

三、CocoaPods的原理

CocoaPods的原理是将所有的依赖库都放到另一个名为Pods的项目中,然后让主项目依赖Pods项目,这样,源码管理工作都从主项目移到了Pods项目中。Pods项目最终会编译成一个名为libPods.a的文件,主项目只需要依赖这个.a文件即可。

四、CocoaPods的安装

第一步:安装rvm

不管需不需要升级ruby,rvm可以让你拥有多个版本的Ruby,并且可以在多个版本之间自由切换。如果已经安装过跳到第2步(rvm -v 查看是否安装)

$ curl -L get.rvm.io | bash -s stable //需要等一会 $ source ~/.bashrc $ source ~/.bash_profile

等待终端加载完毕,后输入 rvm -v

http://upload-images.jianshu.io/upload_images/1968278-a07a79164f8cdf5d.jpg?imageMogr2/auto-orient/strip|imageView2/2/w/1240

如果能显示版本号则安装成功了。

 ÆÁÄ»¿ìÕÕ 2017-06-02 ÏÂÎç3.07.05.png

第二步:安装ruby

CocoaPods目前安装需要Ruby的版本大于2.2.2,不然会报错:Error installing pods: activesupport requires Ruby version >= 2.2.2。目前Mac系统默认自带是2.0,所以需要升级。 查看已安装的ruby: rvm list 如果已安装版本大于2.2.2,直接到第3步。 ruby -v //也可以查看ruby版本 //列出ruby可安装的版本信息 rvm list known rvm install 2.2.2 //安装一个ruby版本

http://upload-images.jianshu.io/upload_images/1968278-8d47df9db1fd97fc.jpg?imageMogr2/auto-orient/strip|imageView2/2/w/1240

这里一定要设置为默认版本 rvm use 2.2.2 --default

注意:如果安装了最新的2.3.0,期间卡在brew的地方不动,就停止, 去更新brew:brew update,再继续就能安装最新的2.3 版本的rvm了, 当然设置了2.3.0版本为默认版本  ÆÁÄ»¿ìÕÕ 2017-06-02 ÏÂÎç3.07.43.png

 ÆÁÄ»¿ìÕÕ 2017-06-02 ÏÂÎç3.08.07.png

 ÆÁÄ»¿ìÕÕ 2017-06-02 ÏÂÎç3.09.10.png

 ÆÁÄ»¿ìÕÕ 2017-06-02 ÏÂÎç3.09.36.png

 ÆÁÄ»¿ìÕÕ 2017-06-02 ÏÂÎç3.10.04.png

第三步:更换源

我们需要来修改更换源(由于国内被墙)所以要把源切换至ruby-china在终端执行以下命令 目前网上文章大都是这面这种: $ sudo gem update --system $ gem sources --remove https://rubygems.org/ //等有反应之后再敲入以下命令 $ gem sources -a https://ruby.taobao.org/ 这里是个大坑:会报错_connect returned=1 errno=0 state=SSLv3 read servercertificateB:certificate verify failed (https://ruby.taobao.org/specs.4.8.gz) 这是因为taobao Gems 源已停止维护,现由 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.org/ 为了验证你的Ruby镜像是并且仅是ruby-china,可以用以下命令查看: $ gem sources -l 只有在终端中出现下面文字才表明你上面的命令是成功的: CURRENT SOURCES https://gems.ruby-china.org/

确保只有 gems.ruby-china.org

第四步:安装CocoaPods

sudo gem install -n /usr/local/bin cocoapods 注意:这句里我用提示失败了,因为我没有/usr/local/bin这个目录, 用的是 sudo gem install cocoapods --pre ,安装了最新的版本, 可能不稳定,但对于后续安装库时出现一些奇怪的问题是用最新版才能解决的

再加一句,完美解决 sudo xcode-select --switch/Applications/Xcode.app oiKen:这句我没有用,我不知道是什么意思

在终端中输入如下命令来完成安装: pod setup 它需要一点时间来完成,我反正是挂机等了一晚,你等就是了 如果安装失败 ~/.cocoapods 里面是空的,就需要重新setup 命令如下: pod repo remove master pod setup 完毕之后这个文件夹大概有 100多M,需要花费比较多时间,请耐心等待。 到这里你已经成功安装了CocoaPods 终极办法:把你已经装好了cocoaPods同事~/.cocoapods目录下的repo目录拷贝下来,放进自己的目录里。再 pod setup

为了确定CocoaPods是否可以使用,可以用CocoaPods的搜索功能验证一下。在终端中输入: $ pod search AFNetworking 过一段时间之后(可能会比较久),你会在终端中看到一些红色的错误信息,如下: Setting up CocoaPods master repo [!] /usr/bin/Gitclone 'https://github.com/CocoaPods/Specs.Git' master --depth=1 Cloning into 'master'... error: RPC failed; result=52, HTTP code = 0 fatal: The remote end hung up unexpectedly 这说明CocoaPods还不能正常使用,需要更新pod,下载它的一些依赖包;在终端中输入: $ pod setup 过一段时间之后,你会在终端中看到跟上面同样的红色的错误信息。 敲入以上命令时,小编终端上是这个样子的(由于太长,仅截取前面一部分): http://upload-images.jianshu.io/upload_images/1968278-fea3dae71597bf19?imageMogr2/auto-orient/strip|imageView2/2/w/1240

这说明某些环境原因导致pod更新不了,可能原因有,1)gem版本太低;2)github无法链接;3).cocoapods目录下的配置信息错误。我们可以一个一个来排除, 首先更新gem到最新版本,在终端中输入: $ sudo gem update --system 然后检查是否可以ping通github,在终端中输入: $ ping github.com 然后查看pob repo list: $ pod repo list 结果显示0 repos,说明没有安装成功; 删除.cocoapods目录,重新下载pod更新: $ cd ~/.cocoapods/ $ sudo -rm -rf ~/.cocoapods/ 重新执行pod setup,过一段时间后提示setup completed,在终端中输入 pod list,展示出安装列表; 敲入以上命令时,小编终端上是这个样子的(由于太长,仅截取前面一部分):

http://upload-images.jianshu.io/upload_images/1968278-b90a5e6fa381f778?imageMogr2/auto-orient/strip|imageView2/2/w/1240

 ÆÁÄ»¿ìÕÕ 2017-06-02 ÏÂÎç3.10.33.png

 ÆÁÄ»¿ìÕÕ 2017-06-02 ÏÂÎç3.12.42.png

 ÆÁÄ»¿ìÕÕ 2017-06-02 ÏÂÎç3.13.10.png

看到这里,终于下载并且安装好了!接下来看下如何使用吧。

我们先创建这个神奇的PodFile。在终端中进入(cd命令)你项目所在目录,然后在当前目录下,利用vim创建Podfile,运行: $ vim Podfile oiKen:或者直接 pod init 也会产生podfile文件

然后在Podfile文件中输入以下文字: 需要注意的是podfile里面输入的格式变了。 platform :iOS, '8.0' target '你的项目名称' do pod 'AFNetworking', '~> 3.1.0' end 然后保存退出。vim环境下,保存退出命令是: :wq 这时候,你会发现你的项目目录中,出现一个名字为Podfile的文件,而且文件内容就是你刚刚输入的内容。注意,Podfile文件应该和你的工程文件.xcodeproj在同一个目录下。 这时候,你就可以利用CocoPods下载AFNetworking类库了。还是在终端中的当前项目目录下,运行以下命令:

$ pod install

http://upload-images.jianshu.io/upload_images/1968278-1e819f202a2513c4.jpg?imageMogr2/auto-orient/strip|imageView2/2/w/1240

http://upload-images.jianshu.io/upload_images/1968278-86bf6536c9dd523c.jpg?imageMogr2/auto-orient/strip|imageView2/2/w/1240

查找第三方库

比如查找MJExtension,终端输入:pod search MJExtension,第一次搜索他需要建索引,等待一会儿就可以了。

http://upload-images.jianshu.io/upload_images/1608265-861fe8b1d10fb218.png?imageMogr2/auto-orient/strip|imageView2/2/w/1240

http://upload-images.jianshu.io/upload_images/1608265-ebbb361ab224f8ea.png?imageMogr2/auto-orient/strip|imageView2/2/w/1240

引入第三方库到项目中

我先在桌面上新建一个Test项目,然后演示把MJExtension导进去。 刚开始的文件目录是这样的

http://upload-images.jianshu.io/upload_images/1608265-6d6542711c7e5354.png?imageMogr2/auto-orient/strip|imageView2/2/w/1240

1,首先打开终端,cd到Test路径下。

http://upload-images.jianshu.io/upload_images/1608265-4e369e27dff1bdaa.gif?imageMogr2/auto-orient/strip

2.然后生成并编辑一个Podfile文件,命令为vim Podfile,要导入的第三方都要在这里面写上。进去后需要先按I键进入编辑状态,写完后按esc,然后按shift+zz(或者先按shift+:,再按wq)就可以保存退出了。下面的动图里面都有。 Podfile的格式大概如下,其中'Test'为你的target的名字。 platform :ios,'8.0' target 'Test' do pod 'MJExtension', '~> 3.0.13' end

3.安装,命令为:pod install。

http://upload-images.jianshu.io/upload_images/1608265-871f9b7d8a8d4ddb.gif?imageMogr2/auto-orient/strip

安装成功之后,就可以去项目里面使用了。现在的项目文件变成了这样

http://upload-images.jianshu.io/upload_images/1608265-ea4c67a24307d77a.png?imageMogr2/auto-orient/strip|imageView2/2/w/1240

之前我们一直是双击Test.xcodeproj打开项目,以后我们就要双击Test.xcworkspace打开了,打开后发现项目里面多了红色框的部分,可以看到MJExtension已经被引入了。

http://upload-images.jianshu.io/upload_images/1608265-3ccc26e945f9c96a.png?imageMogr2/auto-orient/strip|imageView2/2/w/1240

使用第三方

你会发现当引入MJExtension的头文件时,可以#import

或者#import ,但是却不能在输入#import "MJExtension.h"的时候出现提示。虽然强制输入也可以编译通过,但是感觉很不爽。 解决这个问题的办法是在工程的Build Settings搜索Search,然后在User header search paths中添加$(SRCROOT)并选择recursive。 http://upload-images.jianshu.io/upload_images/1608265-d99fcc7b0cc5733d.png?imageMogr2/auto-orient/strip|imageView2/2/w/1240 现在就可以提示#import "MJExtension.h"啦。 然后我们就可以在项目里面使用MJExtension的方法啦。 http://upload-images.jianshu.io/upload_images/1608265-4cec4b4d7fcfa4a4.png?imageMogr2/auto-orient/strip|imageView2/2/w/1240 增加新的第三方 如果使用过程中我还想添加其他的第三方怎么办,只要在Podfile里面接着添加,然后终端再执行pod install就可以了。 http://upload-images.jianshu.io/upload_images/1608265-de0abe938314e79d.gif?imageMogr2/auto-orient/strip 更新CocoaPods中的第三方们 第三方库们都有人在维护升级,我们需要隔断时间就要更新下我们工程中第三方库的版本。只需要终端输入命令pod update就可以了。 如果遇到pod install或者pod update慢的问题,原因在于当执行以上两个命令的时候会升级CocoaPods的spec仓库,加一个参数可以省略这一步,然后速度就会提升不少。加参数的命令如下: pod install --verbose --no-repo-update pod update --verbose --no-repo-update 删除CocoaPods中的某些第三方们 当我们需要去掉某个第三方库时,只需要在Podfile删除该引入该库的语句,然后执行pod update或者pod install就可以了。 将CocoaPods从项目中删除 如果你在以后的使用过程中不想用CocoaPods了怎么办?很简单,把多出来的东西们都删掉就可以了,不过为了项目正常运行,你需要手动导入已经使用的第三方们哦 http://upload-images.jianshu.io/upload_images/1608265-d1ddb8792b25dbba.gif?imageMogr2/auto-orient/strip 升级CocoaPods 升级CocoaPods版本的命令和安装CocoaPods的命令一样,都是sudo gem install cocoapods。 如果老版本升级cocoapods的时候提示Operation not permitted - /usr/bin/xcodeproj,改用命令sudo gem install -n /usr/local/bin cocoapods --pre就可以了。 卸载CocoaPods 卸载CocoaPods的命令是sudo gem uninstall cocoapods http://upload-images.jianshu.io/upload_images/1608265-8223f4baa3464e17.gif?imageMogr2/auto-orient/strip 执行完命令后,最下面打印Successfully uninstalled cocoapods字样就代表已经成功卸载了。 CocoaPods Mac App的安装和使用 CocoaPods桌面应用版下载地址:https://cocoapods.org/app 打开应用会提示你是否安装命令行工具,选择install就也可以在命令行使用Pod了。省去了上面的步骤们,方便快捷的使用CocoaPods。 http://upload-images.jianshu.io/upload_images/1608265-64fdfe34e7ba8fa6.png?imageMogr2/auto-orient/strip|imageView2/2/w/1240 现在假如要给一个Test项目加入第三方库 1.选择File-New Podfile from Xcode Project,去选择项目的Project文件。 http://upload-images.jianshu.io/upload_images/1608265-dfb7cdefde72d963.png?imageMogr2/auto-orient/strip|imageView2/2/w/1240 2.填写自动生成的Podfile,并且安装。 http://upload-images.jianshu.io/upload_images/1608265-05b24b5b6c711a43.gif?imageMogr2/auto-orient/strip 然后就可以去打开工程了,是不是比命令行简单多了。 注意:Cocoapods.app 删掉并执行命令可能会报错:Unable to locate the CocoaPods.app application bundle. Please ensure the application is available and launch it at least once http://upload-images.jianshu.io/upload_images/1608265-baedf94b4133ad6e.png?imageMogr2/auto-orient/strip|imageView2/2/w/1240 这时候只要执行sudo gem install -n /usr/local/bin cocoapods命令就可以了。 CocoaPods官方使用指南 链接:https://guides.cocoapods.org/ 有什么不了解的或者遇到错误可以去这里查看一下。 XCode的CocoaPods插件 CocoaPods-xcode-plugin是一个XCode的插件,可以很方便的在Xcode通过pods安装各种第三方库。前提是终端已经安装好CocoaPods,使用方法大概如下: http://upload-images.jianshu.io/upload_images/1608265-533856e1cdb3a9c5.gif?imageMogr2/auto-orient/strip Xcode的推荐插件们可以看:http://www.jianshu.com/p/51635869b027 借鉴原文:1.http://blog.csdn.net/oiken/article/details/53501888 2.http://blog.csdn.net/u012960049/article/details/70254844 3.http://www.jianshu.com/p/b64b4fd08d3c
收藏
0
sina weixin mail 回到顶部