CocoaPods 的详细使用教程

CocoaPods进阶篇

一、Podfile.lock文件
当执行:pod install 安装pod以后,会生成Podfile.lock文件,该文件用于保存已经安装的Pods依赖的版本。例如经过cocoaPods安装AFNetworking依赖库对应的Podfile.lock的文件内容为:javascript

PODS:  
  - AFNetworking (2.5.4): - AFNetworking/NSURLConnection - AFNetworking/NSURLSession - AFNetworking/Reachability - AFNetworking/Security - AFNetworking/Serialization - AFNetworking/UIKit - AFNetworking/NSURLConnection (2.5.4): - AFNetworking/Reachability - AFNetworking/Security - AFNetworking/Serialization - AFNetworking/NSURLSession (2.5.4): - AFNetworking/NSURLConnection - AFNetworking/Reachability (2.5.4) - AFNetworking/Security (2.5.4) - AFNetworking/Serialization (2.5.4) - AFNetworking/UIKit (2.5.4): - AFNetworking/NSURLConnection DEPENDENCIES: - AFNetworking (~> 2.0) SPEC CHECKSUMS: AFNetworking: c7d7901a83f631414c7eda1737261f696101a5cd 

Podfile.lock文件最大得用处在于多人开发。对于没有在Podfile中指定Pods依赖库版本的写法,以下:html

pod 'AFNetworking' 

该句话用于获取当前AFNetworking这个Pods依赖库的最新版本。java

当团队中的某我的执行完pod install命令后,生成的Podfile.lock文件就记录下了当时最新Pods依赖库的版本,这时团队中的其它人check下来这份包含Podfile.lock文件的工程之后,再去执行pod install命令时,获取下来的Pods依赖库的版本就和最开始用户获取到的版本一致。若是没有Podfile.lock文件,后续全部用户执行pod install命令都会获取最新版本的SBJson,这就有可能形成同一个团队使用的依赖库版本不一致,这对团队协做来讲绝对是个灾难!ios

在这种状况下,若是团队想使用当前最新版本的SBJson依赖库,有两种方案:
1).更改Podfile,使其指向最新版本的SBJson依赖库;
2).执行pod update命令;
鉴于Podfile.lock文件对团队协做如此重要,咱们须要将它添加到版本管理中,并且最好更改podfile,指定第三库的版本号nginx

二、Podfile文件
Podfile文件的位置通常和项目工程放在同一级别,也就是那个xcodeproj工程文件。若是不放在这个目录里面,须要在Podfile最上面加上一行代码,写上工程的路径(最好放同一层,不要瞎折腾)
指定路径用关键字:xcodeprojgit

xcodeproj "/Users/apple/Desktop/PodsTest/PodsTest.xcodeproj" platform :ios, '7.0' pod 'AFNetworking', '~> 2.0' 

若是不放在和项目工程文件同一路径下,进入Podfile所在路径下,执行pod install命令安装一下cocoapods.程序员

三、如何写Podfile文件中,第三方库的版本
若是不知道AFNetworking最新版本是多少,能够打开终端输入命令:github

pod search AFNetworking 

回车后,能够获得一串信息:vim

-> AFNetworking (2.5.4) A delightful iOS and OS X networking framework. pod 'AFNetworking', '~> 2.5.4' - Homepage: https://github.com/AFNetworking/AFNetworking - Source: https://github.com/AFNetworking/AFNetworking.git - Versions: 2.5.4, 2.5.3, 2.5.2, 2.5.1, 2.5.0, 2.4.1, 2.4.0, 2.3.1, 2.3.0, 2.2.4, 2.2.3, 2.2.2, 2.2.1, 2.2.0, 2.1.0, 2.0.3, 2.0.2, 2.0.1, 2.0.0, 2.0.0-RC3, 2.0.0-RC2, 2.0.0-RC1, 1.3.4, 1.3.3, 1.3.2, 1.3.1, 1.3.0, 1.2.1, 1.2.0, 1.1.0, 1.0.1, 1.0, 1.0RC3, 1.0RC2, 1.0RC1, 0.10.1, 0.10.0, 0.9.2, 0.9.1, 0.9.0, 0.7.0, 0.5.1 [master repo] - Subspecs: - AFNetworking/Serialization (2.5.4) - AFNetworking/Security (2.5.4) - AFNetworking/Reachability (2.5.4) - AFNetworking/NSURLConnection (2.5.4) - AFNetworking/NSURLSession (2.5.4) - AFNetworking/UIKit (2.5.4) -> AFNetworking+AutoRetry (0.0.5) Auto Retries for AFNetworking requests pod 'AFNetworking+AutoRetry', '~> 0.0.5' - Homepage: https://github.com/shaioz/AFNetworking-AutoRetry - Source: https://github.com/shaioz/AFNetworking-AutoRetry.git - Versions: 0.0.5, 0.0.4, 0.0.3, 0.0.2, 0.0.1 [master repo] -> AFNetworking+Ext (1.2.1) AFNetworking的封装, 并提供一个 UIImageView+DYLoading cache in fileSystem+memory pod 'AFNetworking+Ext', '~> 1.2.1' - Homepage: https://github.com/junhaiyang/AFNetworkingExt - Source: https://github.com/junhaiyang/AFNetworkingExt.git - Versions: 1.2.1, 1.2, 1.1, 1.0, 0.5, 0.4, 0.3 [master repo] - Subspecs: - AFNetworking+Ext/Base (1.2.1) - AFNetworking+Ext/AFCustomRequestOperation (1.2.1) - AFNetworking+Ext/AFDownloadRequestOperation (1.2.1) - AFNetworking+Ext/AFTextResponseSerializer (1.2.1) - AFNetworking+Ext/example (1.2.1) - AFNetworking+Ext/UIKit (1.2.1) - AFNetworking+Ext/UIKit/UIImageView+DYLoading ...... ...... 

经过这条搜索命令,咱们能够获得上面信息,最重要的是第三行xcode

pod 'AFNetworking', '~> 2.5.4' 

把它拷贝到Podfile文件中便可。

四、CocoaPods经常使用的命令:

1).pod install

根据Podfile文件指定的内容,安装依赖库,若是有Podfile.lock文件并且对应的Podfile文件未被修改,则会根据Podfile.lock文件指定的版本安装。每次更新了Podfile文件时,都须要从新执行该命令,以便从新安装Pods依赖库。

2).pod update
若果Podfile中指定的依赖库版本不是写死的,当对应的依赖库有了更新,不管有没有Podfile.lock文件都会去获取Podfile文件描述的容许获取到的最新依赖库版本。

3).pod search
按名称搜索可用的Pods依赖库

4).pod setup
用于更新本地电脑上的保存的Pods依赖库tree。因为天天有不少人会建立或者更新Pods依赖库,这条命令执行的时候会至关慢,还请耐心等待。咱们须要常常执行这条命令,不然有新的Pods依赖库的时候执行pod search命令是搜不出来的。

 2015/6/27
posted in  CocoaPods干货 

CocoaPods版本升级

有时候须要从服务器端更新代码,发现本地CocoaPods版本较低,须要升级。升级步骤以下:
一、执行命令

$ pod install [!] The 'master' repo requires CocoaPods 0.37.2 - 

如上提示失败,提示须要CocoaPods 0.37.2版本
查看CocoaPods版本

$ pod --version 0.36.3 

再执行更新或者安装的步骤:

$ sudo gem update --system // 先更新gem,国内须要切换源 $ gem sources --remove https://rubygems.org/ $ gem sources -a http://ruby.taobao.org/ $ gem sources -l \*\*\* CURRENT SOURCES \*\*\* http://ruby.taobao.org/ $ sudo gem install cocoapods // 安装cocoapods $ pod setup 

和安装过程是同样的,再次查看版本

$ pod --version 0.37.2 

更新完成

 2015/6/19
posted in  CocoaPods干货 

CocoaPods的安装和使用

以前我没有接触到用CocoaPods来管理第三方库。直到苹果在15年春节以后宣布新政,从那天起,之后新上线的APP必须支持64位。当时没有了解到这条规定,app在提交审核一周后被拒绝了。当时项目中有很多第三方库,得一个一个找,并且还麻烦。毕竟64位替换32位库也费时费力,还得一个一个下载替换。因而师傅当时在项目中引入了CocoaPods。我就跟在后面一直了解吸取他的干货。这几天项目重构完了,我就学着走一遍如何安装和使用CocoaPods。我把其它的项目拷贝一份来作实验。整理以下:

1、首先介绍一下CocoaPods是什么:(百度一下资料呈上)
开发iOS应用时,会常用到不少第三方开源类库,好比JSONKit,友盟,AFNetWorking等等。可能某个类库又用到其余类库,因此要使用它,必须得另外下载其余类库,而其余类库又用到其余类库,手动一个个去下载所需类库十分麻烦。另一种常见状况是,你项目中用到的类库有更新,你必须得从新下载新版本,从新加入到项目中,十分麻烦。
CocoaPods应该是iOS最经常使用最有名的类库管理工具了,上述两个烦人的问题,经过cocoaPods,只须要一行命令就能够彻底解决,固然前提是你必须正确设置它。重要的是,绝大部分有名的开源类库,都支持CocoaPods。因此,做为iOS程序员的咱们,掌握CocoaPods的使用是必不可少的基本技能了。

2、下载、安装CocoaPods:
打开终端,直接安装命令是:sudo gem install cocoapods
可是若是不使用代理,通常会失败的。因此使用以下办法,将镜像换成taobao.orh进行下载:
输入下面命令:
gem sources --remove https://rubygems.org/

删除原有镜像源
回车,有反应后再输入:
gem sources -a http://ruby.taobao.org/
修改成淘宝的镜像源,不信验证下:
gem sources -l

屏幕快照 2015-06-19 下午4.29.49

如上所示 表示修改镜像成功了
如今就能够下载了:再在终端运行:
sudo gem install cocoapods
若是网速很差,得重复执行这条命令,到最后提示安装成功便可!就这样,防不胜防的就安装好了cocoapods。

3、作一个实验,在之前的项目中,用cocoapods导入AFNetworking库:(以下步骤所示)
导入前的工程目录结构以下图所示:
2
在导入第三方库以前,须要判断该库是否支持cocoapods,验证是否支持只须要以下命令:
$ pod search AFNetworking
运行以后,出现以下所示状况,说明AFNetworking仍是支持cocoapods的。
3
(其实比较长,我只是截图一部分下来讲明下的)

须要用cocoapods直接导入AFNetworking,须要一个配置文件,cocoapods 安装和更新第三库,都是按照一个文件名字叫作PodFile的来执行的。
在终端中进入(cd命令)你项目所在目录,而后在当前目录下,利用vim建立Podfile,和CNTaiPingPension.xcodeproj在同一文件夹下(平级)
$ vim PodFile 
(若是是第一次,vim PodFile 就是建立一个新的,之后都是打开修改便可)
而后在Podfile文件中输入如下文字:

platform :ios, ‘7.0’ 
pod AFNetworking~> 2.0

这2条术语能够在AFNetworking的github页面找到,通常第三方支持cocoapods都会提示的。写完按esc 再按shift + : 输入wq(保存并退出),q (退出不保存)
这时候 ls 一下 发现已经多了一个文件,即:
4
如今再执行
$ pod install
回车等出现以下提示,说明成功了 失败就多试几回 网络很差没办法:
5
它让你关掉XCODE在点击CNTaiPingPension.xcworkspace运行项目,而不是以前的CNTaiPingPension.xcodeproj。如今项目中的目录结构以下所示:
7

看看 还多了一个Podfile.lock和Pods文件夹,咦,刚才导入的AFNetworking在哪呢?点击Pods,原来在这:以下图:
6

OK!至此,利用cocoapods导入AFNetworking成功了!这其实只是一小部分,之后再整理了!太神奇了,好东西,值得分享!

相关文章
相关标签/搜索