经常使用CocoaPods来管理iOS项目中的第三方库,但是我们要使用CocoaPods来管理第三方库,前提是要写好Podfile文件,通过这个文件来配置第三方库与项目之间的依赖、版本等信息。
但是,我相信很少有人完整地学习过Podfile的语法规则,包括笔者在写本篇文章之前。今天,请大家与笔者一起来完整地学习Podfile官方教程。
之前一直想写来着,因为包括笔者在内并没有深入学习过它的使用。如果对之不够了解,如何能做到善用之。因此,下面一起来探讨探讨吧!
什么是Podfile
官方只有一句话说明什么是Podfile:
The Podfile is a specification that describes the dependencies of the targets of one or more Xcode projects.
大概意思是:Podfile文件是一种规则描述,用于描述一或多个Xcode工程的targets之间的依赖。
基本使用
Podfile可以很简单:
target 'MyApp'
pod 'AFNetworking', '~> 1.0'
也可以很复杂:
platform:ios, '9.0'
inhibit_all_warnings!
target 'MyApp' do
pod 'ObjectiveSugar', '~> 0.5'
target "MyAppTests" do
inherit! :search_paths
pod 'OCMock', '~> 2.0.1'
end
end
post_installdo |installer|
installer.pods_project.pod_targets.eachdo |target|
puts "#{target.name}"
end
end
这里只是抛砖引玉,继续往下看,如何一点点地掌握Podfile的语法规则。
Podfile全局配置
目前根据官方文档说明,Podfile全局配置只有一个命令:
install!
官方说明它的作用是:
Specifies the installation method to be used when CocoaPods installs this Podfile.
大概意思是:指定CocoaPods安装Podfile时所使用的安装方法
例如:
install! 'cocoapods',
:deterministic_uuids => false,
:integrate_targets => false
目前支持的key有:
:clean
:deduplicate_targets
:deterministic_uuids
:integrate_targets
:lock_pod_sources
这个没有见过任何工程里边有人使用过,相信99%的人儿都是使用默认的全局配置。对于这几个key,官方也没有明确说明其功能!
在我们日常开发中,我们可能永远不需要使用到此配置命令,因此大家不用太关注它!
Dependencies依赖
CocoaPods就是用于管理第三方依赖的。我们通过Podfile文件配置来指定工程中的每个target之间与第三方之间的依赖。
有以下三个命令来管理依赖:
pod 指定特定依赖。比如指定依赖AFNetwroking
podspec 提供简单的API来创建podspec
target 在我们的工程中,通过target指定所依赖的范围。
Pod命令
此命令用于指定工程的依赖。我们通过Pod命令指定所依赖的第三方及第三方库的版本范围。
永远使用最新版本
pod 'HYBMasonryAutoCellHeight'
当我们永远使用远程仓库中的最新版本时,我们只需要指定仓库名即可。当有新的版本发布时,执行pod update命令,会更新至最新的版本。
因为版本之间可能会存在很大的差异,因此我们不应该采用这种方式,而是指定版本范围或者指定特定版本。