美文网首页iOS面试闪充
程序员面试闪充--Cocoapods的详解

程序员面试闪充--Cocoapods的详解

作者: 谦谦君子修罗刀 | 来源:发表于2018-01-30 14:37 被阅读31次

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

    一、介绍

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

    优点:快速查找新的第三方库。替换旧的框架(缩短开发周期和提升软件质量)/ 在引入第三方库时自动配置编译选项,减少错误。

    原理:将所有的依赖库都放到另一个名为Pods的项目中,让主项目依赖Pods项目,如此一来,所有的源码管理工作都从主项目中移到了Pods项目中。
    1)Pods项目最终会编译成一个名为libPods.a的文件,主项目只需要依赖这个.a文件即可。
    2)对于资源文件,Cocoapods提供了一个名为Pods-resources.sh的bash脚本,该脚本在每次项目编译的时候都会执行,将第三方库的各种资源文件复制到目标目录中。
    3)CocoaPods通过一个名为Pods.xconfig的文件来编译时设置所有的依赖参数。


    远程索引库里存放的是各种框架的描述信息,这个库托管在 Github 上。
    在 install cocoapods 命令后,需要执行 pod setup 这个命令,pod setup 命令就是将远程索引库克隆到本地来。
    当执行 pod search 命令时,如果本地索引文件不存在,会创建这个文件,如果这个文件存在,则会在此文件中进行索引,确认所需要的框架是否存在。

    二、安装

    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以上的系统)
    

    4、将Podspec文件的托管地址从github切换到国内的oschina上。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安装成功。

    三、使用

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

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

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

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

      • 该框架支持的平台
      • 使用的iOS版本
      • 框架的名称
      • 框架的版本

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

    2、安装

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

    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的管理之下

    四、cocoapods的插件

    在github上搜索kattrali/cocoapods-xcode-plugin插件来安装第三方框架

    将该插件下载下来,运行之后退出Xcode

    通过CocoaPods菜单选项创建出一个新的podfile文件。


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


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


    五、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和项目整合到一个工作空间中,并且设置文件链接

    讲解视频:
    Cocoapods详解
    参考链接:
    你真的会用CocoaPods吗
    iOS开发之 Xcode的 Cocoapods插件使用方法

    相关文章

      网友评论

        本文标题:程序员面试闪充--Cocoapods的详解

        本文链接:https://www.haomeiwen.com/subject/lahczxtx.html