Cocoapods包管理工具
安装Cocoapods
$sudo gem update --system
//查看当前的源
$gem sources -l
$gem sources --remove https://rubygems.org/
$gem sources -a https://gems.ruby-china.org/
$sudo gem install cocoapods
//或者指定安装路径
//$sudo gem install -n /usr/local/bin cocoapods
$pod setup --verbose
安装依赖库
//cd 到项目目录下
$pod init
$vi Podfile
//修改生成的Podfile文件,添加所需要的依赖库
//例:pod 'Alamofire', '~> 4.4.0'
//保存
$pod install
在swift的项目中,使用动态链接库
use_frameworks!
库(library)和框架(frameworkd)和cocoaPod之间的区别
Cocoapod或者简写为”pod”是一种惯常的叫法,用来表示使用Cocoapods工具添加库或者框架到你的应用程序中。
iOS 8引入了动态框架,这就允许了代码、图片和其他的东西(assets)可以被一起打包。在iOS 8之前,CocoaPods被作为静态库来创建,就是很”臃肿的”二进制文件。这意味着它包含了一些代码说明设置(例如i386 for the simulator, armv7 for devices等),但是它们不允许包含任何资源,例如图片或资产。
另外一个重要的区别是动态框架有命名空间类,而静态库没有。所以,如果单个项目中不同的静态库里分别有一个叫做MyTestClasses的类,那么Xcode可能不能成功创建工程因为它会因重复的标识而导致连接失败。然而,Xcode很乐意在一个工程里的不同框架下分别有一个名字相同的类。
为什么这很重要?不像OC,标准的Swift运行时库(runtime libraries)没有包含在iOS中!这意味着你的框架必须包含了必要的Swift运行时库。因此,用Swift语言写的pods必须以动态框架形式创建。如果苹果允许Swift静态库,那么使用同一个标准运行时依赖的不同库中将会产生重复符号。
幸运的是,CocoaPods为你做了这些事。它甚至能做到一次性包含需要的依赖关系。你所要做的就是在使用swift cocoaPods时记得在Podfile中包含use_frameworks! ,那就没问题了。