CocoaPods的安装和使用

316 阅读6分钟

     第一步:安装

     要使用CocoaPods,那就要下载安装它,而下载安装CocoaPods需要依赖Ruby环境。

     1、Ruby环境搭建

     Mac OS本身自带Ruby,但还是更新一下保险,因为我第一次安装在没有更新Ruby的情况下就失败了。

     在终端下用以下命令查看下当前ruby版本

     ruby -v

    

     2、更新ruby

     终端输入如下命令

     国内需切换 gem source

     sudo gem update —system #这里需要翻墙一下

     gem - v

    

     3、切换 gem source(因为Ruby的软件源rubygems.org被屏蔽了,我们需要来修改更换源,把源切换至ruby-china)

     gem sources --add gems.ruby-china.com/ #(设置当前ruby的源为我国可用的)

     --remove rubygems.org/ #(移除当前ruby的源)

    

     4、检查

     gem sources -l #(查看当前ruby的源)

     *** CURRENT SOURCES***

     gems.ruby-china.com

     #确保只有 gems.ruby-china.com

    

     5、安装 cocoapods(mac osx 10.11 之后)

     sudo gem install -n /usr/local/bin cocoapods --pre //安装最新版本

    

     6、设置仓库(下载第三方库),就是把所有上传到cocoapods的第三方框架,下载每个版本和网络地址以及一些其他描述信息到本地

     pod setup

    

     第二步:使用终端创建Podfile文件

     1、创建新工程:

     例如要导入:AFNetworking

    

     2、搜索cocoapods是否支持要使用的第三方类库

     pod search AFNetworking

    

     3、打开终端,将终端目录切换到工程目录的根文件夹路径下,cd 此路径:

     cd /Users/mac/Desktop/Demo

     使用终端在根目录中创建一个名为Podfile文件:

     vim Podfile

     然后键盘输入【i】,进入文件编辑模式(insert模式)插入模式

     platform :ios, '8.0'

     pod ‘AFNetworking'

     target 'Test' do

     end

     最后,按Esc,并且输入【:】进入vim命令模式,然后在【:冒号】后边输入wq,保存并退出。

     至此,你打开根目录文件夹就会发现文件夹中多了一个名为Podfile的文件。

    

     4、安装Podfile文件,在终端输入:

     pod  install

     成功之后,再次运行工程,就要使用xx.xcworkspace(白色文件)打开工程

    

     5、如果再次在Podfile文件中增加其他类库的依赖,完成之后,需要更新 Podfile:

     pod  update

    

     6、更新安装过的第三方库,cd 此路径:

     cd /Users/mac/Desktop/Demo

     更新 Podfile:

     pod  update

    

     7、使用别人带有cocoapods管理依赖的工程

     cd 路径(切换到工程路径下)

     pod  update (命令)

    

    

     其他:

     1、关于 Podfile.lock:

     当你执行pod install之后,除了 Podfile 外,CocoaPods 还会生成一个名为Podfile.lock的文件,Podfile.lock 应该加入到版本控制里面,不应该把这个文件加入到.gitignore中。因为Podfile.lock会锁定当前各依赖库的版本,之后如果多次执行pod install 不会更改版本,要pod update才会改Podfile.lock了。这样多人协作的时候,可以防止第三方库升级时造成大家各自的第三方库版本不一致。

     2、更新CocoaPods版本,终端输入命令:gem install cocoapods --pre(sudo gem install -n /usr/local/bin cocoapods --pre)

     移除现有pod:rm -rf /usr/local/bin/pod

     3、如何在终端里面查看第三方下载进度

     打开终端,输入命令:du -sh *

     注意:终端一定进入项目总文件夹的路径

    

    

     CocoaPods第三方库更新方法

     CocoaPods里管理的第三方更新的非常频繁,可能每个小时里面就会有一大堆的更新,所以,如果我们想使用最新的第三方我们就需要养成经常更新本地的类库的习惯,而且如果我们不时常更新的话,当我们某一天集中更新的话,会耗费较长的时间。

     所以养成这种习惯也挺好,更新本地类库很简单,并不需要很多步,但有可能很耗时间。

    

     第一种方法:先介绍一些耗时比较长的方法

     1、更新所有库最简单最基本的方法

     pod update

    

     2、更新所有库一种间接直观的方法

     打开终端

     cd ~/.cocoapods

     ls

     cd repos

     ls

     cd master

     ls

     ls -a

     git pull

     简单的介绍一下该方法第一行【cd ~/.cocoapods】是进入到本地的【cocoapods】类库根目录;

     【ls】是显示该目录下有哪些文件,之后一直cd下去到了【master】文件夹;

     master中的Specs文件夹就是存放者本地的第三方库的目录,每个文件夹里有一个json文件介绍了该三方的基本情况(版本、适用iOS版本等等);

     【ls -a】是显示该文件夹下的隐藏文件,会发现有一个【.git】文件说明该文件夹是一个git厂库,说以可以使用git的方法更新该文件夹的内容;

     【git pull】等待执行完毕即可。

    

     第二种方法:更新你指定第三方库

     Xcode执行:

     打开 Podfile 文件

     target 'Test' do

     platform:ios,'10.0'

     pod 'AFNetworking', '~> 2.6.3' #指定需要的版本

     end

     终端执行:

     pod update + 需要更新升级的库名字 例如: pod update AFNetworking

    

     第三种方法:一种比较省时间的更新方法(这种方法感觉不靠谱)

     pod update --verbose --no-repo-update

     对比pod update,这种方法在后面添加的的一串参数,作用是省略了升级CocoaPods的spec仓库这一步,然后速度就会提升不少。

    

     第四种方法:

     只安装Podfile内新增库,不更新已安装的库:pod install

     重新更新安装Podfile内全部的库:pod install --verbose --no-repo-update

     

     该命令只安装新添加的库,已更新的库忽略

     pod update 库名 --verbose --no-repo-update

     该命令只更新指定的库,其它库忽略

    

     使用Cocoapods时,一些常见的警告与错误:

     问题1、Your Podfile has had smart quotes sanitised. To avoid issues in the future, you should not use TextEdit for editing it. If you are not using TextEdit, you should turn off smart quotes in your editor of choice.

     不要使用文本编辑去编辑Podfile,使用Xcode编辑,或者使用终端敲命令去编辑。

     原因:集成时使用TextEdit编辑Podfile,导致引用库名称引号不正确。

     解决办法:使用Xcode去打开Podfile。

    

     问题2、RuntimeError - [Xcodeproj] Unknown object version.

     /Users/ocean/.rvm/gems/ruby-2.2.2@global/gems/xcodeproj-1.3.0/lib/xcodeproj/project.rb:217:in initialize_from_file' /Users/ocean/.rvm/gems/ruby-2.2.2@global/gems/xcodeproj-1.3.0/lib/xcodeproj/project.rb:102:inopen'

     /Users/ocean/.rvm/gems/ruby-2.2.2@global/gems/cocoapods-1.0.1/lib/cocoapods/installer/analyzer.rb:695:in block (2 levels) in inspect_targets_to_integrate' /Users/ocean/.rvm/gems/ruby-2.2.2@global/gems/cocoapods-1.0.1/lib/cocoapods/installer/analyzer.rb:694:ineach'

     此处省略 N 多字

     原因:就是你的 Xcode 版本和现在 CocoaPods 的版本问题不匹配,比如你用 Xcode8 但你的 CocoaPods 版本是1.0.1,就有可能出现此类问题。因为Xcode8需要 CocoaPods1.1.0。

     解决方法:更新 CocoaPods 的版本,在终端执行如下命令 gem install cocoapods --pre(sudo gem install -n /usr/local/bin cocoapods),然后在相对应 Podfile 文件所在路径下执行 pod install 即可。

\

\

    iOS 为新项目创建Podfile文件

    1.创建一个项目,然后打开终端cd到项目目录下面

    2.执行 pod init 命令后会在项目的目录下看到一个Podfile文件

    3.在终端使用vim Podfile 命令打开文件,编辑完成后退出保存(:wq)

    或者用用文本编辑器打开这个文件后,输入自己想要用到的三方库(如:pod 'AFNetworking'),然后保存

    4.在终端中输入 pod install 命令即可安装你想要的三方库,等待提示成功之后就已经完成了

\