二:新浪微博:第三方框架管理工具CocoaPods的安装和使用
一:CocoaPods的安装
我们可以用淘宝的Ruby镜像来访问cocoapods。按照下面的顺序在终端中敲入依次敲入
$ gem sources --remove https://rubygems.org/
//等有反应之后再敲入以下命令
$ gem sources -a http://ruby.taobao.org/
为了验证你的Ruby镜像是并且仅是taobao,可以用以下命令查看:
$ gem sources -l
只有在终端中出现下面文字才表明你上面的命令是成功的:
*** CURRENT SOURCES *** http://ruby.taobao.org/
这时候,你再次在终端中运行:
$ sudo gem install cocoapods
等上十几秒钟,CocoaPods就可以在你本地下载并且安装好了,不再需要其他设置。
二:CocoaPods的使用
1:建立名为Podfile的文件,在终端执行命令打开项目的根目录:再在终端执行 touch Podfile 命令来创建名为Podfile的文件。如图:
这样就在项目的根目录下创建了名为Podfile的文件:如图:
2:手动打开或是终端打开Podfile文件:在终端执行命令: open -e Podfile
此时会打开项目根目录下的Podfile文件,可对该文件进行编辑:其中的target 后面的为项目名字,其中这些开源的框架可去github上查找,并查看用cocoapods导入的方法,所支持的版本
2:编辑好Podfile文件后,在终端执行命令: pod install.如图正在下载类库:
当执行pod install之后,除了Podfile,还会生成一个名为Podfile.lock的文件,它会锁定当前各依赖库的版本,之后即使多次执行pod install也不会更改版本,只有执行pod update才会改变Podfile.lock.在多人协作的时候,这样可以防止第三方库升级时候造成大家各自的第三方库版本不一致。所以在提交版本的时候不能把它落下,也不要添加到.gitignore中.
pod install 成功之后如图:
:
3:cocoapods的使用注意点:
1:从此以后需要使用Cocoapods生成的 .xcworkspace文件来打开工程,而不是使用以前的.xcodeproj文件
2: 每次更改了Podfile文件,都需要重新执行一次pod update命令
3:你如果不知道 cocoaPods 管理的库中,是否有你想要的库,那么你可以通过 pod search 命令进行查找.在终端切换到项目的根目录下:执行 pod search SDWebImage 命令,就会查找出cocoaPods所支持的
SDWebImage的信息和版本如
图,可以在途中找到 含有pod 一行命令的语句,这个语句就是我们需要在Podfile文件中需要编辑的
:
4:cocoapods的安装和更新:在终端中切换到项目根目录下执行命令:sudo gem install cocoapods
5:cocoapods常见指令:
1:
- 更改Podfile,使其指向最新版本的SBJson依赖库;
- 执行pod update命令;
Podfile.lock文件最大得用处在于多人开发。对于没有在Podfile中指定Pods依赖库版本的写法如下:
pod 'SBJson' 该命令用于获取当前SBJson这个Pods依赖库的最新版本。
2:Podfile文件存放的位置:通常情况下我们都推荐Podfile文件都放在工程根目,录事实上Podfile文件可以放在任意一个目录下,需要做的是在Podfile中指定工程的路径,和原来相比,Podfile文件就在最开始的位置增加了一行,具体内容如下: (也可以不指定,直接默认在根目录下)
此后,进入Podfile文件所在路径,执行pod install命令就会和之前一样下载这些Pods依赖库,而且生成的相关文件都放在了Podfile所在目录下面
3:Podfile 和 target:
Podfile本质上是用来描述Xcode工程中的targets用的。如果我们不显式指定Podfile对应的target,CocoaPods会创建一个名称为default的隐式target,会和我们工程中的第一个target相对应。换句话说,如果在Podfile中没有指定target,那么只有工程里的第一个target能够使用Podfile中描述的Pods依赖库。
4:使用Podfile管理pods依赖库版本
再引入依赖库时,需要显示或隐式注明引用的依赖库版本,具体写法和表示含义如下:
5:cocoaPods常用指令:
1:pod install:根据Podfile文件指定的内容,安装依赖库,如果有Podfile.lock文件而且对应的Podfile文件未被修改,则会根据Podfile.lock文件指定的版本安装。每次更新了Podfile文件时,都需要重新执行该命令,以便重新安装Pods依赖库。
2:pod update:若果Podfile中指定的依赖库版本不是写死的,当对应的依赖库有了更新,无论有没有Podfile.lock文件都会去获取Podfile文件描述的允许获取到的最新依赖库版本
3:pod search :搜索相应的依赖库,将含有pod的命令添加到Podfile文件中
4:pod setup:这条命令用于更新本地电脑上的保存的Pods依赖库tree。由于每天有很多人会创建或者更新Pods依赖库,这条命令执行的时候会相当慢,还请耐心等待。我们需要经常执行这条命令,否则有新的Pods依赖库的时候执行pod search命令是搜不出来的。
5:## CocoaPods
- 若没有写上版本号,则cocoapods默认安装最新的版本,且适配platform下的ios版本。第一次执行podInstall,此时还没有生成Podfile.lock文件,当安装完毕后,会生成Podfile.lock文件,记录 所有第三方框架的版本号,此后在执行pod install,则只会会根据Podfile.lock文件中列举的版本号来安装第三方框架
- Podfile.lock文件
- 最后一次更新Pods时, 所有第三方框架的版本号
- 常用指令的区别:两个方法都会将最新版本从服务器下载到电脑缓存起来,根据指令不同安装不同的版本
- pod install
- 会根据Podfile.lock文件中列举的版本号来安装第三方框架
- 如果一开始Podfile.lock文件不存在, 就会按照Podfile文件列举的版本号来安装第三方框架
- 安装框架之前, 默认会执行pod repo update指令
- pod update
- 将所有第三方框架更新到最新版本, 并且创建一个新的Podfile.lock文件
- 安装框架之前, 默认会执行pod repo update指令
- pod install --no-repo-update
- pod update --no-repo-update
- 安装框架之前, 不会执行pod repo update指令
podfile文件编辑如图:platform之后的ios为小写,并标明项目的版本号,若是pod的文件没有标明版本号,则第一次执行pod install的时候,默认系在的都是最新的版本。有时候会执行pod install 命令时会出现系在依赖库失败的情况,可能的原因是电脑本地的依赖库不是最新的,需要更新到最新,所以执行pod update,更新最新的依赖库,此时的Podfile.lock文件记录的版本号也会更新,非第一次执行pod install,系统会根据
Podfile.lock文件记录的版本号区更新依赖库,只有执行
pod update之后,才会更新现有的依赖库。