來源:https://www.jianshu.com/p/a3b803457b08
CocoaPods的简介
CocoaPods是一个管理Swift和Objective-C的Cocoa项目的依赖工具。它包含了github上所有的第三方库,我们使用它来管理我们项目依赖的第三方库,可以节省设置和更新第三方开源库的时间。
安装CocoaPods
因为我只用过Mac版本,这里只介绍Mac版本的安装步骤:
1.安装ruby
Mac上面本来就自带了ruby,因此我们跳过这个步骤。
2.安装cocoapods
-
由于天朝网络的原因,我们无法使用它自带的官方源(服务器毕竟在国外),这就要求我们替换掉它,首先移除官方源
$ gem sources --remove https://rubygems.org/
-
添加上我们国内的源,这里通常有两个选择一个是
https://ruby.taobao.org/
一个是https://gems.ruby-china.org
(注意:不要写错任何地方,最好粘贴复制,后面是否有斜线,是否是https等问题)这里我们以后者为例,在终端输入$ gem source -a https://gems.ruby-china.org
-
执行完毕后我们输入命令看下是否替换成功
$ gem source
-
如果终端输出如下,则代表成功替换掉了(当然如果使用的是 https://ruby.taobao.org/ 显示的也是https://ruby.taobao.org/ )
*** CURRENT SOURCE***https://gems.ruby-china.org
-
到这里我们才可以真正的安装cocoapods。在你的终端上输入如下命令
$ sudo gem install cocoapods
-
安装完成后我们要对cocoapods进行一下初始化
$ pod setup
到了这里我们的cocoapods安装过程就算完成了。
*关于pod setup
等待时间过长的解决办法 : *
- 有人可能会一直卡在
pod setup
这一个步骤,首先你要知道这一步执行的操作是什么?
pod setup
的本质就是将https://github.com/CocoaPods/Specs上的Specs项目clone到/Users/用户名/.cocoapods/repos目录下。若此目录下已有Specs项目,则会将项目更新到最新的状态。由于Specs很大,容易导致pod setup失败。这时就需要我们手动安装Specs。下面说下手动安装的步骤 - 打开我们的终端,将终端cd到桌面上,然后在终端输入
$ git clone https://github.com/CocoaPods/Specs
,接下来就是漫长的等待过程. - 下载完后我们桌面上会出现一个名为[Specs]的文件夹,将clone的Specs项目的文件夹改名为master,然后拖到/Users/用户名/.cocoapods/repos目录下.运行
$ pod setup
注意: 下载Specs文件的时候要用终端clone下来,不要直接去网站现在zip的压缩包,下载的压缩包解压后会缺失.git文件导致还是不能正常运行.
cocoapods的使用
cocoapods虐我千百遍后,终于我们可以享受它带来的便捷了。
-
打开终端,cd到我们的项目目录下,为了保证我们确实打开了想要的目录终端输入
$ ls
查看一下是否有一个 xxxx.xcodeproj文件(其中xxxx是我们的工程名字)只有出现这个文件我们才能进行后续操作。 -
在我们打开的项目目录下,需要生成一个Podfile文件来进行我们第三方库的管理,再终端输入
$ pod init
如果终端没有输出任何错误,说明我们安装成功了。当然有时候我们cd目录不正确,从而找不到对应的xxxx.xcodeproj文件时,终端会打印
[!] No Xcode project found, please specify one
不要着急,重新cd到项目目录下,一定要确保有xxxx.xcodeproj文件再次执行,成功后你会在你的项目目录里面看到一个Podfile的文件,我们就是用它来写入或者删除第三方库的 -
我们可以用脚本编辑器对podfile文件进行编辑操作,
$ vim podfile
打开我们的podfile文件
# Uncomment this line to define a global platform for your project
# platform :ios, '9.0'
target 'cocoapodsTest' do # Comment this line if you're not using Swift and don't want to use dynamic frameworks use_frameworks! # Pods for cocoapodsTest target 'cocoapodsTestTests' do inherit! :search_paths # Pods for testing end target 'cocoapodsTestUITests' do inherit! :search_paths # Pods for testing end end
按一下 i 键,如果终端最下方出现
-- INSERT ---
表示我们进入编辑操作了,删除掉没有大用的地方,删除后的文件如下,当然 # 后面的文字表示注释,是我自己添加的,删除后的文件也没有
#我们最低适应的版本,如下表示最低为iOS 9.0,我们可以自己定义版本号
platform :ios, '9.0'
# ''中的内容为我们的项目名字,这里一般不需要我们更改
target 'cocoapodsTest' do
#如果你是用Swift编写的工程,建议保留这一行,要不然在你的项目中无法识别第三方库
use_frameworks!
#以后要在这个位置写入我们依赖的第三方库名称 end
编辑完成后按下esc按钮退出编辑状态,在输入 :wq 保存更改并退出podfile文件。
终端输入
$ pod install
建议 : 如果你正在使用的第三方依赖库中没有什么更新的话,在你执行$ pod install
的时候后面加上--no-repo-update,即不更新本地仓库,可以节省时间
执行完后,项目下多了 xxxx.xcworkspace 和 Podfile.lock两个文件,从此以后我们打开工程的时候就要打开 xxxx.xcworkspace了不再是xxxx.xcodeproj。
- 点击 xxxx.xcworkspace,打开我们的项目,如果Xcode报
Couldn't load cocoapodsTest.xcodeproj because it is already opened from another project or workspace
,我们只是忘了将原来通过xxxx.xcodeproj打开的项目关闭,导致无法加载,只要我们将项目关闭后再通过xxxx.xcworkspace打开一遍就OK了。
打开项目后我们可以看到我们两个工程,一个是我们自己的工程,一个是Pods工程,打开Pods,我们可以看到一个podfile文件,这个就是我们以前编辑的那个podfile文件,如果你嫌用脚本编译编辑麻烦,可以在这里直接编辑,反正我一般都是用Xcode来编辑的。 - 第三方库的查找与导入
下面我就以SVProgress为例来说下库的导入,首先我们要看先要使用的第三方库是否支持cocoapods,打开终端输入,因为我们以 SVProgress 为例子,此处输入的为 SVProgress
$ pod search SVProgress
如果支持,那么恭喜你你只要将终端打印出来的各个版本选择一个然后将打印信息中的pod 'SVProgressHUD'
复制一下,打开podfile文件,至于如何打开,你可以用Xcode或者用别的文本编辑器就看个人习惯了,将pod 'SVProgressHUD'
粘贴到我们上面提到过的位置。在用终端cd到有podfile的目录下终端输入
$ pod install
出现提示信息Pod installation complete!
表示我们安装成了,这时候我们可以愉快的在工程中使用我们的第三方库了