CocoaPods系列教程(一) —— 入门
初次使用
关于使用我这里主要分为两个部分,一个部分是关于命令的层次来说的,一部分是关于Podfile的层次来说的。当然对于简单的使用用起来也非常简单。不过刚开始就来一个简单的吧。
就比如我们最常用的AFNetworking
、SDwebImage
来说的话,只需在项目名.xcodeproj的目录下创建一个Podfile
的文件,然后打开文件,填入一下内容:
|
|
然后保存,并且打开一个命令行,跳转到Podfile
的目录直接运行pod install
即可。
当然,你会看到你的目录下会多了目录Pods, 文件Podfile.lock以及文件项目名.xcworkspace。以后你打开项目就再也不是xcodeproj的文件了,而是wxcworkspcace的文件。
深入至Podfile
由于有Podfile.lock
文件的保护下,在没有执行pod update
命令的情况下,是不会将已有的第三方依赖库进行升级的。
platform
这个参数是只依赖的库希望在哪个平台被编译。 一句话带过吧,直接使用platform:ios, '7.0'
,说希望采用iOS7.0的进行编译。
xcodeproj
指定包含引用pod库的target的Xcode工程会被链接到
如果没有显示的project被指定,那么会默认使用target的父target指定的project作为目标。如果如果没有任何一个target指定目标,那么就会使用和Podefile在同一目录下的project。
同样也能够指定是否这些设置在release或者debug模式下生效。为了做到这一点,你必须指定一个名字和:release/:debuge关联起来
例子: 指定用户工程
|
|
用自定义的编译配置
|
|
pod
首先先来讲讲最核心的pod关键字吧。关于pod的使用在上面可以看得出来是pod ‘框架名’ 参数。 当然对于前面两个pod ‘框架名’是固定的,没上面好说,参数的话,这里主要讲参数。
参数一: 版本号
从上面可以看得出SDWebImage就接了版本号。不过版本号可以是大于、小于、等于等。当然具体的可以是’> 3.7’, ‘>= 3.7’, ‘< 3.7’, ‘3.7’以及’~> 3.7’。关于普通的就没什么好说了,最后一个~>指的是正对最后一位来说。如使用’~> 3.7.4’,意味着’>= 3.7.4’并且’< 3.8.0’的意思。
参数二:地址
CocoaPods可以指定某一个git的目录或者是本地的目录。有的时候我们希望一直用某一个版本最新的版本,即使没有打版本的话,我们可以直接后面接上:git => 'https://github.com/gowalla/AFNetworking.git'
。 当然除了这种情况外,还有可能是如果是我们自己开发的私有库,并且在开发阶段的情况下,可能就希望开发模式进行引用,则可以使用path参数::path => '~/Documents/AFNetworking'
参数三:tag、branch、commit
有的时候我们希望引用有一个tag,branch或者是comit的内容的话可以使用这个参数,分别用:branch => ‘branch名’、:tag => ‘tag名’、:commit => ‘提交号’。
参数四:inhibit_warnings
用来避免那些第三方框架中带来的警告: :inhibit_warnings => true
。
target
这个是指定具体的配置是适配在哪个target
,这里的target值得就是Xcode中的target。如果对于一些项目中你的不同target引用的框架不同的话,可以采用这个进行区分。
|
|
inhibit_all_warnings!
屏蔽CocoaPods库里面的所有警告。
use_frameworks!
这个指明编译成动态库,而不是静态库,特别是在使用Swift库的过程中,特别需要使用这句。不过他会把所有项目的编译动态库,这一点有点不好。不过在使用Swift库的过程中就没办法了。
source
这个参数是指CocoaPods
从哪些仓库(Spec
)中获得框架的源代码,如果在结合使用开源库以及自己私有库的情况下,这个参数还是非常有意义的。只需要在Podfile
文件开头列出你需要引用库的所有仓库地址即可。
|
|
plugin
Podfile提供了钩子用来在安装时被调用,钩子是全局的,不存储在每个target定义里面。
指定的插件应该使用在安装过程中使用此方法来指定一个插件,应该在安装过程中使用,同时,应传递给插件调用时的选项
例子: 指定用slather 和 CocoaPods-keys插件
|
|
pre_install
这个钩子允许你在Pods被下载后但是还未安装前对Pods做一些改变;它接受 Pod::Installer 作为唯一参数
例子: 定义pre_install钩子
|
|
post_install
这个钩子允许你在生成的Xcode project写入硬盘或者其他你想执行的操作前做最后的改动;它接受 Pod::Installer 作为唯一参数
例子: 给所有target自定义编译配置
|
|
好了对于Podfile常用几个稍微拿出来说了一下,如果还有更深入不懂的情况下,可以查看 CocoaPods Guide 。 最后给一个官方的Demo吧.
|
|