一.CocoaPods的介绍
什么是CocoaPods
CocoaPods是OS X和iOS下的一个第三类库管理工具,通过CocoaPods工具我们可以为项目添加被称为“Pods”的依赖库(这些类库必须是CocoaPods本身所支持的),并且可以轻松管理其版本。
Cocoapods意义体现在两个方面。第一,在引入第三方库时它可以自动为我们完成各种各样的配置,包括配置编译阶段、连接器选项、甚至是ARC环境下的-fno-objc-arc配置等。第二,使用CocoaPods可以很方便地查找新的第三方库,这些类库是比较“标准的”,而不是网上随便找到的,这样可以让我们找到真正好用的类库。
接下来我们将介绍CocoaPods的使用。
CocoaPods的核心组件
CocoaPods是用Ruby写的,并划分成了若干个Gem包。
CocoaPods在解析执行过程中最重要的几个包的路径分别是:CocoaPods/CocoaPods、 CocoaPods/Core和 CocoaPods/Xcodeproj。
CocoaPods / CocoaPod:这是面向用户的组件,每当执行一个pod命令时,这个组件将被激活。它包括了所有实用CocoaPods的功能,并且还能调用其他gem包来执行任务。
CocoaPods / Core:Core gem提供了与CocoaPods相关的文件(主要是podfile和podspecs)的处理。
Podfile:该文件用于配置项目所需要的第三方库,它可以被高度定制。本文中我们主要在这里做动作。
Podspec:该文件描述了一个库将怎样被添加进工程中。.podspec文件可以标识该第三方库所需要的源码文件、依赖库、编译选项,以及其他第三方库需要的配置。
CocoaPods / Xcodeproj:这个包负责处理工程文件,它能创建以及修改.xcodeproj文件和.xcworkspace文件。它也可以作为一个独立的包使用,当你要编写修改项目文件的脚本时,可以考虑使用CocoaPods/Xcodeproj。
三.CocoaPods的安装
一、初次安装cocoaPods(就是说之前没有安装过,废话真多,哈哈,之前安装过的看第二大项) 1.开启 terminal (终端),/**$后面的代码复制的终端上*/ 2.移除现有 Ruby 默认源 $ gem sources --remove https://rubygems.org/
3.使用新的源
$ gem sources -a https://ruby.taobao.org/ 4.验证新源是否替换成功
$ gem sources -l 5.安装 CocoaPods $ sudo gem install cocoapods $ pod setup 备注:苹果系统升级 OS X EL Capitan 后安装改为: $ sudo gem install -n /usr/local/bin cocoapods //等待再等待,这个运行时间会比较长 $ pod setup 6.更新 gem
// $ sudo gem update --system 7.新建工程,并在终端用 cd 指令到文件夹内 $ pod search AFNetworking 8.新建 Podfile 文件 (cd /Users/shiyunlei/Desktop/CocoapodsSample(进入工程目录,cd后面的是工程的路径))
$ touch Podfile 9.然后使用vim编辑Podfile文件,使用命令: $ vim Podfile
然后紧接着按键盘上的“i”键,变成如下状态,这个时候可以对Podfile文件进行编辑: $ platform:ios, ‘8.0‘ //这个是必须要添加 $ target 'CIOTimes' do # xcodeproj '项目路径(这里写项目路径).xcodeproj'
pod ....
$ end 在编辑完成后按“esc”,再按“:”,这个时候输入wq,点击回车,保存并退出。
10.导入第三方库
$ pod install
11.退出终端
12.这个时候会看到之后打开工程都需要从类型为工程名.xcworkspace文件打开。
13.如何编译包含cocoapods的项目
比如从github下载下来一个项目,运行时候依赖关系报错,这时候需要更新
$ pod update
可能由于墙的的问题,无论是执行pod install还是pod update都卡在Analyzing dependencies不动了,慢到无以复加的地步,无法忍受。
其实原因在于以上两个命令执行时会升级CocoaPods的spec仓库,加一个参数可以省略这一步,然后速度就会提升不少。加参数的命令如下:
pod install --verbose --no-repo-update
pod update --verbose --no-repo-update
二、安装过的,直接cd到当前项目的父文件夹里。
1、pod init (查看你的项目同级目录下有没有Podfile,如果有说明成功了)。
2、pod search "第三方库名称" (之后把第三方库,粘贴到do 与 end 之间)。
3、Pod install (完成,就这么简单)。
三.CocoaPods的删除
如果你想要尝试在工程中安转cocoapods,那么网上的资料太多了,但是如果你想要删除掉cocoapods,那么怎么办呢,如果你不知道的话那么我告诉你吧! 1. 删除工程文件夹下的Podfile、Podfile.lock及Pods文件夹 2. 删除xcworkspace文件 3. 使用xcodeproj文件打开工程,删除Frameworks组下的Pods.xcconfig及libPods.a引用 4. 在工程设置中的Build Phases下删除Check Pods Manifest.lock及Copy Pods Resources及pods相关的事项 好了,这样你就把工程中的cocoapods删除了。
ps:如果将cocoapods集成到工程中后不小心修改或删除了其相关文件导致无法便以通过例如:不小心把Pods.xcconfig给删除了然后出现diff: /../Podfile.lock: No such file or directory,用上面的方法删除cocoapods后, 再重新$sudo pod install一下就好了。 上面的方法也适用于下载别人的代码,别人使用了cocoapods,也会经常出现上述问题,就可以用这个来解决了。 如果编译的时候出现权限问题,对工程文件夹$sudo chmod 777 path-to-project-folder/* $sudo chown 777 path-to-project-folder/* 即可。 四.cocoapods 错误原因 1.使用CocoaPods找不到头文件解决方法. (1)在TARGETS -> Build Settings -> User Header Search Paths 中 写入 ${SRCROOT} 再将后面参数改为recursive
(2) 工程中->PROJECT ->Architectures 中的Back SDK 要与pods PROJECT ->Architectures 一致.
(3)工程中->PROJECT ->Architectures Build Active Architecture Only 设置成YES,pods PROJECT ->Architectures Build Active Architecture Only 设置成NO(如果还报错设置成一致). 2.错误代码
ERROR: While executing gem ... (Errno::EPERM) Operation not permitted - /usr/bin/update_rubygems 说明你的gem没有更新,解决办法 :更新gem sudo gem install -n /usr/local/bin cocoapods --pre 3.错误代码
[!] /usr/bin/git clone https://github.com/CocoaPods/Specs.git master
xcrun: error: active developer path ("/Applications/Xcode.app/Contents/Developer") does not exist, use `sudo xcode-select --switch path/to/Xcode.app` to specify the Xcode that you wish to use for command line developer tools (or see `man xcode-select`),你的电脑中有两个Xcode或是你的电脑升级到最新版需要重新设置下,解决办法如下: sudo xcode-select --switch Xcode所在路径/Contents/Developer/,如
sudo xcode-select --switch /Applications/Xcode\ 7.3.1.app/Contents/Developer/ 4 .Could not automatically select an Xcode project. Specify one in your Podfile like so: xcodeproj 'path/to/Project.xcodeproj' ,解决办法: 在你的Podfile文件中加入工程的路径,如
project '/Users/xingzai/Desktop/works/CIOTimes/iOS/xxx.xcodeproj' 5. ERROR: Could not find a valid gem 'cocoapods' (>= 0), here is why: $ gem sources --remove https://rubygems.org/
$ gem sources -a http://rubygems.org/
$ gem install cocoapods 6. cocoapods更新,(出现的错误sudo gem install cocoapods
ERROR: While executing gem ... (OpenSSL::SSL::SSLError)
hostname "upyun.gems.ruby-china.org" does not match the server certificate 提示为淘宝镜像源,升级可能会失败,貌似不能用了) 更新淘宝镜像
(1.移除淘宝镜像源
gem sources --remove https://ruby.taobao.org/
(2.添加新的镜像源
gem sources -a https://gems.ruby-china.org
(3.更新gem
sudo gem update --system
(4.更新cocoapods(sudo gem install cocoapods 或者 sudo gem install -n /usr/local/bin cocoapods --pre)
sudo gem install -n /usr/local/bin cocoapods --pre
(5.查看版本
pod --version 7.ERROR: SSL verification error at depth 1: unable to get local issuer certificate (20)
ERROR: You must add /C=IL/O=StartCom Ltd./OU=Secure Digital Certificate Signing/CN=StartCom Certification Authority to your local trusted store
ERROR: SSL verification error at depth 2: self signed certificate in certificate chain (19)
ERROR: Root certificate is not trusted (/C=US/O=GeoTrust Inc./CN=GeoTrust Global CA) 出现这个问题的原因主要是Ruby环境需要2.2版本以上,所以要更新Ruby环境。 更新Ruby环境
0.首先要安装Homebrew终端输入这条命令即可/usr/bin/ruby -e "$(curl -fsSL
https://raw.githubusercontent.com/Homebrew/install/master/install)"
1.安装rvm$ curl -L get.rvm.io | bash -s stable
2.装载rvm$ source ~/.rvm/scripts/rvm
3.安装2.3.0版本ruby$ rvm install 2.3.0
4.将2.3.0设为默认$ rvm use 2.3.0 --default
证书错误问题
$ cd $rvm_path/usr/ssl
$ sudo curl -O http://curl.haxx.se/ca/cacert.pem
$ sudo mv cacert.pem cert.pem
五、cocoapods一些命令
六、升级 Ruby和安装Cocoapods
$ruby -v // 查看当前版本
//安装rvm,ruby vision manager
$curl -L get.rvm.io | bash -s stable
//继续敲下面的两个命令
$source ~/.bashrc
$source ~/.bash_profile
//$rvm list known // 查看所有的ruby版本,如果有明确想升级的版本,可不查看
$rvm install 2.3.0 // 开始安装
//如果你安装过了cocoa pods ,这时进行pod命令是不成功的
$gem uninstall cocoapods
$gem install cocoapods
$pod setup
//ok