CocoaPods使用
搬来一篇以前的文章😄
1 安装CocoaPods
打开终端Terminal 输入以下命令行
sudo会授予临时的管理员权限,所以会要求输入密码
$ sudo gem install -n /usr/local/bin cocoapods
// $ sudo gem install cocoa pods 在 EL Capitan版本之前的Mac系统可以用这句
$ pod setup
2 在项目中使用
2.1 创建Podfile
CocoaPods 的项目依赖管理是依靠于 Podfile
在Terminal中将当前文件夹切换到需要使用CocoaPods的项目文件夹中,也就是
.xcodeproj
所在的位置
$ cd /Users/UserName/Documents/CocoaPodsTest
// cd 为打开文件夹 后面跟着相对路径
// cd 一次之后可以 ls 看当前所在的文件夹
$ touch Podfile
// 创建了一个名 Podfile 的无后缀文件
$ open -a Xcode Podfile
// 使用Xcode 来打来名为 Podfile 的文件
上述命令执行完之后就会在项目文件夹里创建一个Podfile
的空文件,并且这个文件已经被Xcode打开
在打开的空文件中,粘贴下列文字
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '9.0'
use_frameworks!
pod 'Alamofire', '~> 3.4'
注意⚠️:Swift库需要添加
use_frameworks!
到Podfile中。而且这个只支持iOS8及以上系统
Pod 'AFNetworking','~2>.5'
这句是导入2.5版本AFNetWorking
库,每个库在它们的Github主页上都会有这句话的声明。以后只要添加这两句就可以了
比如添加显示Gif的库 Gifu
pod 'Gifu'
就行了
注意⚠️:不要用一般的文字编辑工具来修改
Podfile
。因为一般的文字编辑工具可能会对一些字符比如引号进行替换,从而导致了Podfile
在执行时发生错误。因此推荐使用一些编程软件,比如Xcode
2.2 安装第三方库
现在可以在项目中安装依赖(第三方库)了。
$ pod install
这个命令会让CocoaPosa根据Podfile里面的配置来下第三方库了。
安装完之后,以后打开项目就不能只打开.xcodeproj
而是xcworkspace
$ open youProjectName.xcworkspace
3 pod install
与pod update
区别
简单结论:
-
pod instal
: 每次编辑完 Podfile 安装或者移除pod文件的时候用,它不会更新已有的pod至最新 -
pod update
: 更新已有的pod至最新。它也有install 的功能,但是如果没有明确pod名字会把全部的pod都更新到最新。
3.1 pod install
在项目第一次获取pods的时候用install
命令,每次编辑Podfile, 更新或者删除
- 每次
pod install
命令运行的时候就会下载并安装新的pods文件,在每个Podfile.lock中写入安装的版本号。 Podfile.lock 文件追踪每个pod的已经安装的版本然后锁定这些版本。 - 当你运行
pod install
命令时, 它仅仅处理没有记录在Podfile.lock中的依赖。 it only resolves dependencies for pods that are not already listed in the Podfile.lock
.对于那些已经存在于Podfile.lock中的文件,该命令下载Podfile.lock中明确的版本,并且不会去检查是否存在一个更新的可用版本。对于没有存在于Podfile.lock中的pods,该命令搜索匹配Podfile中描述的版本号 (比如 'MyPod', '~>1.2')
3.2pod outdated
pod outdated
会让CocoaPods 列出所有比Podfile.lock中的版本(现有版本)有更新版本的pods
这意味着如果对列出的pods运行pod update PODNAME
,它们只要符合podfile中的限制就会更新
.
3.3 pod update
当你运行 pod update PODNAME
, 它会尽可能的更新到最新的版本 (只要符合你的 Podfile 中的限制).
CocoaPods 尝试寻找一个当前pod更新的版本, 无论 Podfile.lock 列出什么版本.
如果运行 pod update 不带上pod名,
with no pod name, CocoaPods 将会把Podfile中列出的每一个pod都更新到最新版本。
3.4 预期用途
-
更新特定的pod.
用pod update PODNAME
pod install
不会更新已经安装的pods的版本 -
Podfile中添加了新的pod
用pod install
pod update
会同时把已有的pod更新到最新版本
总而言之,仅在你想要更新某个或者全部的pod的版本时候使用pod update
。