一、podfile.lock文件
Podfile.lock文件最大得用处在于多人开发。对于没有在Podfile中指定Pods依赖库版本的写法,如下:
pod JSONKIT该句话用于获取当前SBJson这个Pods依赖库的最新版本。
当团队中的某个人执行完pod install命令后,生成的Podfile.lock文件就记录下了当时最新Pods依赖库的版本,这时团队中的其它人check下来这份包含Podfile.lock文件的工程以后,再去执行pod install命令时,获取下来的Pods依赖库的版本就和最开始用户获取到的版本一致。如果没有Podfile.lock文件,后续所有用户执行pod install命令都会获取最新版本的SBJson,这就有可能造成同一个团队使用的依赖库版本不一致, 这对团队协作来说绝对是个灾难!
在这种情况下,如果团队想使用当前最新版本的JSONKIT依赖库,有两种方案:
- 更改Podfile,使其指向最新版本的JSONKIT依赖库;
- 执行pod update命令;
鉴于Podfile.lock文件对团队协作如此重要,我们需要将它添加到版本管理中
二、Podfile文件
对于普通用户来说,使用CocoaPods我们打交道最多的就是Podfile文件。CocoaPods是用ruby实现的,因此Podfile文件的语法就是ruby的语法。接着从以下几个方面来介绍Podfile:
1、Podfile文件存放位置
通常情况下我们都推荐Podfile文件都放在工程根目录,事实上Podfile文件可以放在任意一个目录下,需要做的是在Podfile中指定工程的路径,和原来相比,Podfile文件就在最开始的位置增加了一行,具体内容如下:
xcodeproj "/Users/admin/Documents/CocoaPodsFirst/CocoaPodsFirst.xcodeproj"
指定路径使用的是xcodeproj关键字2、Podfile和target
①多个target中使用相同的Pods依赖库
如果想在一个Podfile中同时描述project中的多个target
比如,名称为CocoaPodsTest的target和Second的target都需要使用Reachability、SBJson、AFNetworking三个Pods依赖库,可以使用link_with关键字来实现,将Podfile写成如下方式:
link_with 'CocoaPodsFirstExample','CocoaPodsSecondExample'
link_with 'CocoaPodsFirstExample','CocoaPodsSecondExample'
②不同的target使用完全不同的Pods依赖库
CocoaPodsFirstExample这个target使用的是Reachability、SBJson、AFNetworking三个依赖库,但CocoaPodsSecondExample这个target只需要使用OpenUDID这一个依赖库,这时可以使用target关键字,Podfile的描述方式如下:(注意target后面的:不能有空格)
target :'CocoaPodsFirstExample' do
platform :ios
pod 'FXReachability', '~> 1.1.1'
pod 'GCJSONKit', '~> 1.5.0'
platform :ios ,'7.0'
pod 'AFNetworking', '~> 2.3.1'
end
target :'CocoaPodsSecondExample' do
platform :ios
pod 'OpenUDID', '~> 1.0.0'
end
其中,do/end作为开始和结束标识符。
CocoaPodsFirstExample这个target使用的是Reachability、SBJson、AFNetworking三个依赖库,但CocoaPodsSecondExample这个target只需要使用OpenUDID这一个依赖库,这时可以使用target关键字,Podfile的描述方式如下:(注意target后面的:不能有空格)
target :'CocoaPodsFirstExample' do
platform :ios
pod 'FXReachability', '~> 1.1.1'
pod 'GCJSONKit', '~> 1.5.0'
platform :ios ,'7.0'
pod 'AFNetworking', '~> 2.3.1'
end
target :'CocoaPodsSecondExample' do
platform :ios
pod 'OpenUDID', '~> 1.0.0'
end
其中,do/end作为开始和结束标识符。