这一段做项目会用到一些开源库比如VLC,七牛云存储都是需要用CocoaPods才能运行,索性把这个总结一下
通过CocoaPods,我们可以将第三方的依赖库统一管理起来,配置和更新只需要通过简单的几行命令即可完成,大大的提高了实际开发中的工作效率,使我们的主要精力集中到更重要的事情上去。
1.安装CocoaPods
安装CocoaPods之前,先确保本地有Ruby环境,因为CocoaPods运行于Ruby之上,默认情况下,Mac是自带了Ruby环境的,可以通过命令行ruby -v查看当前Ruby的版本
接下来我们就可以通过如下命令安装CocoaPods了。
- $ sudo gem install cocoapods
输入上述命令后可能会无响应,那是因为你身在天朝,伟大的墙拦住了你的去路,
不过没关系,我们可以通过淘宝的Ruby镜像来访问Cocoapods,在终端输入如下命令将Ruby镜像替换为淘宝的。替换方式如下:
$ gem sources --remove https://rubygems.org/
//等有反应之后再敲入以下命令
$ gem sources -a http://ruby.taobao.org/
要想验证是否替换成功了,可以执行:$ gem sources 1 正常的输出是:
*** CURRENT SOURCES ***
http://ruby.taobao.org/
接下来就可以重新运行安装命令来安装CocoaPods了,根据你的网络情况,几秒或十几秒后安装过程就完成了,总的来说,安装过程还是比较简单的
2.安装过程中可能遇到的问题
(1)gem版本过老
gem是管理Ruby库和程序的标准包,如果它的版本过低也可能导致安装失败,解决方案自然是升级gem,执行下述命令即可:$ sudo gem update --system
(2)安装完成后执行pod setup命令时报错
/Users/wangzz/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:298:in `to_specs': Could not find 'cocoapods' (>= 0) among 6 total gem(s) (Gem::LoadError)
from /Users/wangzz/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:309:in `to_spec'
from /Users/wangzz/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_gem.rb:53:in `gem'
from /Users/wangzz/.rvm/rubies/ruby-1.9.3-p448/bin/pod:22:in `
这就是路径设置的问题,可以通过执行:$ rvm use ruby-1.9.3-p448
正确安装后的结果是
3.使用CocoaPods
通过集成Qiniu类库来演示如何使用CocoaPods来做依赖库管理。首先,建立一个xcode工程,命名为CocoaPodsTestDemo
这里我们要集成Qiniu,可以先通过如下命令来判断其是否支持CocoaPods
$ pod search Qiniu
检测完毕后我们来到工程CocoaPodsTest的目录下,新建一个名为Podfile的文件(这里通过命令行创建)
$ vim Podfile
这个Podfile文件的作用是配置依赖库信息,就是告诉CocoaPods去下载和管理哪些依赖库,文件创建好以后,打开文件并加入如下内容。(vim打开文件后按i进入插入模式,编辑完成后按esc退出编辑模式,接着输入:wq保存并退出文件)
这时候,工程目录下就会有一个Podfile文件了,注意必须和.xcodeproj在同一个目录下。接下来就可以使用CocoaPods来安装并管理Qiniu库了,确保命令行当前路径是在CocoaPodsTest目录下,运行如下命令。
$ pod install
安装完成后会提示如下信息,并且我们的工程目录下会多出一个.xcworkspace结尾的文件,命令行信息绿色部分提醒我们“从此使用CocoaPodsTest.xcworkspace来打开项目”。
通过CocoaPodsTest.xcworkspace来打开项目,这时,我们的项目工程结构就会变成下图这样,多出一个名为Pods的依赖工程,打开Pods文件夹后,发现Qiniu已经在里面了
这时候就可以在项目文件中引入QiniuSDK.h了,这时候如果你发现import的时候没有提示QiniuSDK的文件,可以在target-Build Settings下修改“User Header Search Paths”项,新增${SRCROOT}并选择rcursive,如下图。
设置完成后就可以在文件中直接引用第三方库的文件并使用了。
到此,新建工程并使用CocoaPods来管理依赖库的过程就完成了,如果是直接使用已有CocoaPods的项目,则需要首先运行一下pod update命令来更新项,然后照样通过.xcworkspace来打开工程。
如果需要依赖多个第三方类库,只需要修改Podfile文件的配置,然后运行pod update命令即可,比如新增一个MBProgressHUD的依赖库,首先执行pod searchMBProgressHUD 查看一下MBProgressHUD的配置信息,修改Podfile文件,在后面增加MBProgressHUD的对应配置信息,然 后运行pod update命令就完成了对MBProgressHUD的集成。
如果类库有更新,查看更新配置并执行pod update即可简单完成了,从此从手动更新繁重的体力劳动中解脱出来
简单小结一下:
安装CocoaPods
新建项目并在工程根目录下新建Podfile文件,配置需要管理的第三方库
运行pod install下载安装第三方库
**********************************************************************
1.安装CocoaPods
(1)先确保本地有Ruby环境 CocoaPods运行在Ruby环境之上 mac自带有
查看当前Ruby环境 ruby -v
(2)终端输入如下命令(把Ruby镜像指向taobao,避免被墙)
gem sources --remove https://rubygems.org/
gem sources -a https://ruby.taobao.org/
gem sources 1
2.下载安装CocoaPods
sudo gem install cocoapods 输入电脑密码
Successfully installed cocoapods-0.39.0 说明已经成功
3.使用CocoaPods
(1)先通过命令看是否支持 pod search AFNetworking
(2)检测完毕后我们来到工程CocoaPodsTest的目录下,新建一个名为Podfile的文件
vim Podfile
这个Podfile文件的作用是配置依赖库信息,就是告诉CocoaPods去下载和管理哪些依赖库,文件创建好以后,打开文件并加入如下内容。(vim打开文件后按i进入插入模式,编辑完成后按esc退出编辑模式,接着输入:wq保存并退出文件)
platform :ios, ‘7.0’
pod ‘AFNetworking’, ‘~> 2.6.3’
(3)这时候,工程目录下就会有一个Podfile文件了,注意必须和.xcodeproj在同一个目录下。接下来就可以使用CocoaPods来安装并管理AFNetworking库了,确保命令行当前路径是在CocoaPodsTest目录下,运行如下命令。
pod install
(4)如果再添加其他的 就 执行pod update
**************************************************************************************************
问题描述:使用cocoapods时,import 找不到头文件。
问题原因:这是因为还没设置头文件的目录。
解决办法:在项目的Target的里设置一下,添加cocoapods头文件目录:目录路径直接写:${SRCROOT} ,后边选择recursive 。就可以了。
注意:是在 User Header Search Paths 里添加,不是上面的 Header Search Paths.