zoukankan      html  css  js  c++  java
  • Cocoapods的安装及使用

    简介

    Cocoapods是OS X和iOS下的一个第三方库管理工具,并且支持Objective-C和swifit语言。通过Cocoapods为项目添加称为"Pods"的依赖库(这些库必须是Cocoapods所支持的),并且轻松实现第三方库的版本管理。
    引入Cocoapods的意义:Cocoapods在引入第三方库时自动为我们完成各种配置,包括配置编译阶段、连接器选项、甚至是ARC环境下的-fno-objc-arc配置等;Cocoapods可以很方便的查找第三方库,可以快速方便的寻找到优秀的第三方库以及它们的各种信息。

    原理:CocoaPods的原理是将所有的依赖库都放到另一个名为Pods的项目中,然后让主项目依赖Pods项目,这样,源码管理工作都从主项目移到了Pods项目中。Pods项目最终会编译成一个名为libPods.a的文件,主项目只需要依赖这个.a文件即可。
    Cocoapods 官方网站:
    https://cocoapods.org/
    Cocoapods整个项目托管在github上, 所有的Pods依赖库也都依赖github
    https://github.com/CocoaPods

    一、 配置Ruby环境,安装CocoaPods

    • CocoaPods是基于ruby ecosystem的,需要ruby环境,使用ruby的gem命令。所以我们的系统要有ruby环境。然而Mac系统默认会安装好ruby环境。可在终端ruby -v查看ruby版本

    //查看ruby版本
    ruby -v
    //输出信息
    ruby 2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin15]
    • 打开终端,依次执行输入的部分命令如下:

    sudo gem update --system      //升级Ruby环境*
    gem sources -l                               // 查看源列表
    gem sources -remove https://rubygems.org/     // 将不需要的源移除掉
    gem sources -a https://gems.ruby-china.org/      // 添加ruby-china源源(当然你有其他可用的源也可以)
    sudo gem install cocoapods           // 安装cocoapods,需要输入用户密码,输入完成后,按回车键,需要等待许久后才能完成安装,成功安装后会有提示
    pod --version       //查看是否安装成功,如果成功会显示pod的版本
    pod setup   //这条命令是将Github上的开源库https://github.com/CocoaPods/Specs.git托管的Podspec索引文件都下载到本地 ,花费时间比较久,
    pod search AFNetworking    // 搜索AFNetworking库
    sudo gem uninstall cocoapods    //卸载CocoaPods
    

    终端命令截图:
    终端命令.png
    当前CocoaPods版本

    执行pod setup ,这条命令是将Github上的开源库https://github.com/CocoaPods/Specs.git托管的Podspec索引文件都下载到本地的~/.cocoapods/repos/master/路径下 ,花费时间比较久,所以可以选择直接从别的地方拷贝一份放到对应的目录下,或者手动去Github下载,下载完成后放到对应的目录下。

    • 通过如下终端命令下载到对应的位置,可以看到下载进度。

    cd  ~/.cocoapods/repos/master/ 
    git clone https://github.com/CocoaPods/Specs.git

    终端命令下载

    cocoapods文件目录.png

    • 搜索第三方库

    pod search AFNetworking

    搜索失败

    搜索第三方库如果出现了上述错误,可以执行
    rm ~/Library/Caches/CocoaPods/search_index.json来删除本地旧的search_index.json文件,

    然后再次输入pod search AFNetworking进行搜索,pod search 命令会先查看有无search_index.json文件,如果不存在该文件,会自动根据master文件夹生成一个新的search_index.json文件,
    这时会提示Creating search index for spec repo 'master'..,然后就耐心等待吧.......成功了之后就如下图:

    搜索成功会显示类库的信息


    二、安装成功,使用CocoaPods

    在使用CocoaPods之后,我只需要将用到的第三方开源库放到一个名为Podfile的文件中,然后执行pod install。CocoaPods就会自动将这些第三方开源库的源码下载下来,并且为我的工程设置好相应的系统依赖和编译参数。

    • 使用时需要新建一个名为 Podfile 的配置文件,放在主项目的根目录下(与TestFramework.xcodeproj文件同一层级),以我桌面上的TestFramework工程为例:

    示例工程
    用终端命令新建Podfile文件到主项目目录(关于终端命令的使用可以看看这篇Mac 终端命令大全):

    ① 、 cd到项目总目录

    ②、 创建Podfile配置文件

    接着第①步,终端先执行vim Podfile命令 ,接着在键盘端输入 i,进入编辑模式,输入如下配置信息(也可以先跳过输入这一步,之后直接打开Podfile文件编辑):

    platform:ios,’8.0’     //平台ios,Deployment Target 8.0
    target “TestFramework" do        //关联TestFramework.xcodeproj
    pod 'AFNetworking'        //导入三方库
    pod 'MBProgressHUD' 
    pod 'MJExtension', '~> 3.0.13'    //3.0.13是版本号
    end

    然后按Esc,并且输入“ :”号进入vim命令模式,然后输入wq,回车后就会发现TestFramework项目目录中多一个Podfile文件。

    创建Podfile配置文件
    编辑Podfile
    生成Podfile文件

    ③ 、 执行 pod install ,生成管理三方库的Pods工程

    下载三方库

    命令执行完成后,需要导入的第三方库都已经下载完成并且设置好了编译参数和依赖,同时你需要注意:

    • 使用 CocoaPods 生成的 TestFramework.xcworkspace 文件来打开工程,而不是以前的 TestFramework.xcodeproj 文件;

      • 当需要更改Podfile文件配置信息时 ,比如删除或者增加三方库 ,直接编辑Podfile文件, 每次更改了 Podfile 文件后,你需要重新执行一次pod install命令,别忘了要cd 到Podfile文件所在目录。

    • 第三方库们都有人在维护升级,当我们需要更新下第三方库的版本时,就需要终端执行命令pod update。

    生成TestFramework.xcworkspace

    打开TestFramework.xcworkspace

    • 删除JSONKit库时的终端命令与Podfile文件:
      删除JSONKit库时的终端命令与Podfile 文件

    关于 Podfile.lock (引自:唐巧的博客

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

    CocoaPods 的这篇 官方文档 也在What is a Podfile.lock一节中介绍了Podfile.lock的作用,并且指出:

    This file should always be kept under version control.

    三、使用CocoaPods管理的三方库

  • 相关阅读:
    mysql索引
    springboot mybatis 后台框架平台 shiro 权限 集成代码生成器
    java 企业网站源码模版 有前后台 springmvc SSM 生成静态化
    java springMVC SSM 操作日志 4级别联动 文件管理 头像编辑 shiro redis
    activiti工作流的web流程设计器整合视频教程 SSM和独立部署
    .Net Core中的ObjectPool
    文件操作、流相关类梳理
    .Net Core中的配置文件源码解析
    .Net Core中依赖注入服务使用总结
    消息中间件RabbitMQ(一)
  • 原文地址:https://www.cnblogs.com/Free-Thinker/p/9257028.html
Copyright © 2011-2022 走看看