一、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命令是搜不出来的。