程序员面试闪充--Cocopods详解

Posted 程序员面试闪充

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了程序员面试闪充--Cocopods详解相关的知识,希望对你有一定的参考价值。

当你开发ios应用时,会经常使用到很多第三方开源类库,比如JSONKit,AFNetWorking等等。可能某个类库又用到其他类库,所以要使用它,必须得另外下载其他类库,而其他类库又用到其他类库,“子子孙孙无穷尽也”。





一、介绍


CocoaPods是开发OSX和iOS应用程序的一个第三方库的依赖管理工具。利用CocoaPods,可以定义自己的依赖关系(称作pods),并且随着时间的变化,以及在整个开发环境中对第三方库的版本管理非常方便。 

   

优点:

  • 快速查找新的第三方库。替换旧的框架(缩短开发周期和提升软件质量)

  • 在引入第三方库时自动配置编译选项,减少错误。

程序员面试闪充--Cocopods详解


原理:将所有的依赖库都放到另一个名为Pods的项目中,让主项目依赖Pods项目,如此一来,所有的源码管理工作都从主项目中移到了Pods项目中。


1)Pods项目最终会编译成一个名为libPods.a的文件,主项目只需要依赖这个.a文件即可。

2)对于资源文件,Cocoapods提供了一个名为Pods-resources.sh的bash脚本,该脚本在每次项目编译的时候都会执行,将第三方库的各种资源文件复制到目标目录中。

3)CocoaPods通过一个名为Pods.xconfig的文件来编译时设置所有的依赖参数。


程序员面试闪充--Cocopods详解


远程索引库里存放的是各种框架的描述信息,这个库托管在 Github 上。

在 install cocoapods 命令后,需要执行 pod setup 这个命令,pod setup 命令就是将远程索引库克隆到本地来。

当执行 pod search 命令时,如果本地索引文件不存在,会创建这个文件,如果这个文件存在,则会在此文件中进行索引,确认所需要的框架是否存在。

程序员面试闪充--Cocopods详解

二、安装

 1、升级Gem

 

系统太老可能会有问题,所以安装之前最好升级一下gem


sudo gem update --system


2、切换cocoapods的数据源


cocoapods的数据源在国外,在国内访问速度会特别慢,隐藏将数据源切换到tabbao。先删除数据源,再添加和查看。


gem sources --remove https://rubygems.org/

gem sources -a https://ruby.taobao.org/

gem sources -l


3、安装cocoapods


sudo gem install cocoapods

sudo gem install -n/usr/local/bin cocoapods  (10.11以上的系统)



podspec能管理许多的第三方库。切换步骤是先删除再添加再更新。

并不是所有的库都在Podspec的管辖范围之内的,如何确定第三方库是否被Podspec托管了呢?

在github上输入库名,若发现有文件以.podspec结尾,就可以确定它被托管了。


pod repo remove master

pod repo add master http://git.oschina.net/akuandev/Specs.git

pod repo add master https://gitcafe.com/akuandev/Specs.git

pod repo update


之后就陷入了漫长的等待中……

5、设置pod仓库


pod setup


6、测试


pod --version


如果终端显示了版本号,则说明cocoapods安装成功。

程序员面试闪充--Cocopods详解

三、使用


1、利用cocoapods来安装第三方框架


  • 进入要安装框架的项目的.xcodeproj同级的文件夹


  • 在该文件中新建一个podfile文件


  • 在文件中告知cocoapods需要安装的框架信息

        * 该框架支持的平台

        * 使用的iOS版本

        * 框架的名称

        * 框架的版本

    

    如果不会写,可以到github上去查找某个开源库,上面有示范。

程序员面试闪充--Cocopods详解

2、安装


pod install --no-repo-update  //不更新,若想更新只用pod install

pod update --no-repo-update


程序员面试闪充--Cocopods详解


3、说明

例子:


platform :ios, '8.0' 用来设置所有第三方库所支持的iOS最低版本

pod 'SDWebImage','~2.6' 设置框架的名称和版本号

```

版本号规则:

'>1.0' 可以安装任何高于1.0的版本

'>=1.0' 可以安装任何高于或等于1.0的版本

'<1.0' 可以安装任何低于1.0的版本

'<=1.0' 可以安装任何低于或等于1.0的版本

'~>0.1' 任何高于或等于0.1的版本,但是不包含高于1.0的版本

'~>0' 任何版本,相当于不指定,默认采用最新版本号


可以通过`pod search 框架名`查看框架是否在cocopods的管理之下

程序员面试闪充--Cocopods详解

四、cocoapods的插件


在github上搜索kattrali/cocoapods-xcode-plugin插件来安装第三方框架。将该插件下载下来,运行之后退出Xcode。通过CocoaPods菜单选项创建出一个新的podfile文件。

程序员面试闪充--Cocopods详解


之后会弹出一个模板,此时就可以填写需要的库的信息。

程序员面试闪充--Cocopods详解

当然,通过该插件也能安装第三方库,但是速度比命令行更慢。

程序员面试闪充--Cocopods详解


程序员面试闪充--Cocopods详解

五、CocoaPods相关面试题


1、请说明一下Cocopods的作用和原理

答:CocoaPods是一个第三方库的管理工具,用来管理项目中的第三方框架。它的原理就是将所有的依赖库都放到一个名为Pods的项目中。Pods项目会编译出一个libPods.a的文件,主项目只要依赖这个.a文件即可。这样,依赖库源码管理的工作都从主项目移到了Pods项目中。


2、在使用cocoapods管理第三方框架时,如何修改版本?

答:打开Podfile文件修改Podfile文件中的第三方框架的版本。


3、如何通过 CocoaPods 查找第三方库?

答:  pod search xxx(第三方库)


4、请简单说明在安装cocoapods时,使用pod install命令安装框架后的大致过程

答:

1)分析依赖:该步骤会分析Podfile,查看不同类库之间的依赖情况。如果有多个类库依赖于同一个类库,但是依赖于不同的版本,那么cocoaPods会自动设置一个兼容的版本。

2)下载依赖:根据分析依赖的结果,下载指定版本的类库到本地项目中。

3)生成Pods项目:创建一个Pods项目专门用来编译和管理第三方框架,CocoaPods会将所需的框架,库等内容添加到项目中,并且进行相应的配置。

4)整合Pods项目:将Pods和项目整合到一个工作空间中,并且设置文件链接

程序员面试闪充--Cocopods详解
程序员面试闪充--Cocopods详解



以上是关于程序员面试闪充--Cocopods详解的主要内容,如果未能解决你的问题,请参考以下文章

程序员面试闪充--面试题合集一

程序员面试闪充--核心动画

程序员面试闪充--简历书写

程序员面试闪充--架构模式

程序员面试闪充 -- 性能优化

程序员面试闪充--密码学