zoukankan      html  css  js  c++  java
  • CocoaPods 的详细使用教程

    CocoaPods进阶篇

    1、Podfile.lock文件
    当执行:pod install 安装pod之后,会生成Podfile.lock文件,该文件用于保存已经安装的Pods依赖的版本。例如通过cocoaPods安装AFNetworking依赖库对应的Podfile.lock的文件内容为:

    PODS:  
      - AFNetworking (2.5.4):  
        - AFNetworking/NSURLConnection  
        - AFNetworking/NSURLSession  
        - AFNetworking/Reachability  
        - AFNetworking/Security  
        - AFNetworking/Serialization  
        - AFNetworking/UIKit  
      - AFNetworking/NSURLConnection (2.5.4):  
        - AFNetworking/Reachability  
        - AFNetworking/Security  
        - AFNetworking/Serialization  
      - AFNetworking/NSURLSession (2.5.4):  
        - AFNetworking/NSURLConnection  
      - AFNetworking/Reachability (2.5.4)  
      - AFNetworking/Security (2.5.4)  
      - AFNetworking/Serialization (2.5.4)  
      - AFNetworking/UIKit (2.5.4):  
        - AFNetworking/NSURLConnection  
    
        DEPENDENCIES:  
      - AFNetworking (~> 2.0)  
    
      SPEC CHECKSUMS:  
      AFNetworking: c7d7901a83f631414c7eda1737261f696101a5cd
    

    Podfile.lock文件最大得用处在于多人开发。对于没有在Podfile中指定Pods依赖库版本的写法,如下:

    pod 'AFNetworking' 
    

    该句话用于获取当前AFNetworking这个Pods依赖库的最新版本。

    当团队中的某个人执行完pod install命令后,生成的Podfile.lock文件就记录下了当时最新Pods依赖库的版本,这时团队中的其它人check下来这份包含Podfile.lock文件的工程以后,再去执行pod install命令时,获取下来的Pods依赖库的版本就和最开始用户获取到的版本一致。如果没有Podfile.lock文件,后续所有用户执行pod install命令都会获取最新版本的SBJson,这就有可能造成同一个团队使用的依赖库版本不一致,这对团队协作来说绝对是个灾难!

    在这种情况下,如果团队想使用当前最新版本的SBJson依赖库,有两种方案:
    1).更改Podfile,使其指向最新版本的SBJson依赖库;
    2).执行pod update命令;
    鉴于Podfile.lock文件对团队协作如此重要,我们需要将它添加到版本管理中,而且最好更改podfile,指定第三库的版本号

    2、Podfile文件
    Podfile文件的位置一般和项目工程放在同一级别,也就是那个xcodeproj工程文件。如果不放在这个目录里面,需要在Podfile最上面加上一行代码,写上工程的路径(最好放同一层,不要瞎折腾)
    指定路径用关键字:xcodeproj

    
    xcodeproj "/Users/apple/Desktop/PodsTest/PodsTest.xcodeproj" 
        
    platform :ios, '7.0'    
    pod 'AFNetworking', '~> 2.0'
    
    

    如果不放在和项目工程文件同一路径下,进入Podfile所在路径下,执行pod install命令安装一下cocoapods.

    3、如何写Podfile文件中,第三方库的版本
    如果不知道AFNetworking最新版本是多少,可以打开终端输入命令:

    pod search AFNetworking
    

    回车后,可以得到一串信息:

    -> AFNetworking (2.5.4)
       A delightful iOS and OS X networking framework.
       pod 'AFNetworking', '~> 2.5.4'
       - Homepage: https://github.com/AFNetworking/AFNetworking
       - Source:   https://github.com/AFNetworking/AFNetworking.git
       - Versions: 2.5.4, 2.5.3, 2.5.2, 2.5.1, 2.5.0, 2.4.1, 2.4.0, 2.3.1, 2.3.0,
       2.2.4, 2.2.3, 2.2.2, 2.2.1, 2.2.0, 2.1.0, 2.0.3, 2.0.2, 2.0.1, 2.0.0,
       2.0.0-RC3, 2.0.0-RC2, 2.0.0-RC1, 1.3.4, 1.3.3, 1.3.2, 1.3.1, 1.3.0, 1.2.1,
       1.2.0, 1.1.0, 1.0.1, 1.0, 1.0RC3, 1.0RC2, 1.0RC1, 0.10.1, 0.10.0, 0.9.2,
       0.9.1, 0.9.0, 0.7.0, 0.5.1 [master repo]
       - Subspecs:
         - AFNetworking/Serialization (2.5.4)
         - AFNetworking/Security (2.5.4)
         - AFNetworking/Reachability (2.5.4)
         - AFNetworking/NSURLConnection (2.5.4)
         - AFNetworking/NSURLSession (2.5.4)
         - AFNetworking/UIKit (2.5.4)
    
         -> AFNetworking+AutoRetry (0.0.5)
       Auto Retries for AFNetworking requests
       pod 'AFNetworking+AutoRetry', '~> 0.0.5'
       - Homepage: https://github.com/shaioz/AFNetworking-AutoRetry
       - Source:   https://github.com/shaioz/AFNetworking-AutoRetry.git
       - Versions: 0.0.5, 0.0.4, 0.0.3, 0.0.2, 0.0.1 [master repo]
    
    
    -> AFNetworking+Ext (1.2.1)
       AFNetworking的封装, 并提供一个 UIImageView+DYLoading  cache in fileSystem+memory
       pod 'AFNetworking+Ext', '~> 1.2.1'
       - Homepage: https://github.com/junhaiyang/AFNetworkingExt
       - Source:   https://github.com/junhaiyang/AFNetworkingExt.git
       - Versions: 1.2.1, 1.2, 1.1, 1.0, 0.5, 0.4, 0.3 [master repo]
       - Subspecs:
         - AFNetworking+Ext/Base (1.2.1)
         - AFNetworking+Ext/AFCustomRequestOperation (1.2.1)
         - AFNetworking+Ext/AFDownloadRequestOperation (1.2.1)
         - AFNetworking+Ext/AFTextResponseSerializer (1.2.1)
         - AFNetworking+Ext/example (1.2.1)
         - AFNetworking+Ext/UIKit (1.2.1)
         - AFNetworking+Ext/UIKit/UIImageView+DYLoading 
    ......
    ......
    

    通过这条搜索命令,我们可以得到上面信息,最重要的是第三行

    pod 'AFNetworking', '~> 2.5.4'
    

    把它拷贝到Podfile文件中即可。

    4、CocoaPods常用的命令:

    1).pod install

    根据Podfile文件指定的内容,安装依赖库,如果有Podfile.lock文件而且对应的Podfile文件未被修改,则会根据Podfile.lock文件指定的版本安装。每次更新了Podfile文件时,都需要重新执行该命令,以便重新安装Pods依赖库。

    2).pod update
    若果Podfile中指定的依赖库版本不是写死的,当对应的依赖库有了更新,无论有没有Podfile.lock文件都会去获取Podfile文件描述的允许获取到的最新依赖库版本。

    3).pod search
    按名称搜索可用的Pods依赖库

    4).pod setup
    用于更新本地电脑上的保存的Pods依赖库tree。由于每天有很多人会创建或者更新Pods依赖库,这条命令执行的时候会相当慢,还请耐心等待。我们需要经常执行这条命令,否则有新的Pods依赖库的时候执行pod search命令是搜不出来的。

     2015/6/27
    posted in CocoaPods干货 

    CocoaPods版本升级

    有时候需要从服务器端更新代码,发现本地CocoaPods版本较低,需要升级。升级步骤如下:
    1、执行命令

    $ pod install
    [!] The 'master' repo requires CocoaPods 0.37.2 - 
    
    

    如上提示失败,提示需要CocoaPods 0.37.2版本
    查看CocoaPods版本

    $ pod --version
    0.36.3
    

    再执行更新或者安装的步骤:

    $ sudo gem update --system // 先更新gem,国内需要切换源
    $ gem sources --remove https://rubygems.org/
    $ gem sources -a http://ruby.taobao.org/
    $ gem sources -l
    *** CURRENT SOURCES ***
    http://ruby.taobao.org/
    $ sudo gem install cocoapods // 安装cocoapods
    $ pod setup
    

    和安装过程是一样的,再次查看版本

    $ pod --version
    0.37.2
    

    更新完成

     2015/6/19
    posted in CocoaPods干货 

    CocoaPods的安装和使用

    之前我没有接触到用CocoaPods来管理第三方库。直到苹果在15年春节之后宣布新政,从那天起,以后新上线的APP必须支持64位。当时没有了解到这条规定,app在提交审核一周后被拒绝了。当时项目中有不少第三方库,得一个一个找,而且还麻烦。毕竟64位替换32位库也费时费力,还得一个一个下载替换。于是师傅当时在项目中引入了CocoaPods。我就跟在后面一直了解吸收他的干货。这几天项目重构完了,我就学着走一遍如何安装和使用CocoaPods。我把其它的项目拷贝一份来做实验。整理如下:

    一、首先介绍一下CocoaPods是什么:(百度一下资料呈上)
    开发iOS应用时,会经常使用到很多第三方开源类库,比如JSONKit,友盟,AFNetWorking等等。可能某个类库又用到其他类库,所以要使用它,必须得另外下载其他类库,而其他类库又用到其他类库,手动一个个去下载所需类库十分麻烦。另外一种常见情况是,你项目中用到的类库有更新,你必须得重新下载新版本,重新加入到项目中,十分麻烦。
    CocoaPods应该是iOS最常用最有名的类库管理工具了,上述两个烦人的问题,通过cocoaPods,只需要一行命令就可以完全解决,当然前提是你必须正确设置它。重要的是,绝大部分有名的开源类库,都支持CocoaPods。所以,作为iOS程序员的我们,掌握CocoaPods的使用是必不可少的基本技能了。

    二、下载、安装CocoaPods:
    打开终端,直接安装命令是:sudo gem install cocoapods
    但是如果不使用代理,一般会失败的。所以使用如下办法,将镜像换成taobao.orh进行下载:
    输入下面命令:
    gem sources --remove https://rubygems.org/

    删除原有镜像源
    回车,有反应后再输入:
    gem sources -a http://ruby.taobao.org/
    修改为淘宝的镜像源,不信验证下:
    gem sources -l

    屏幕快照 2015-06-19 下午4.29.49

    如上所示 表示修改镜像成功了
    现在就可以下载了:再在终端运行:
    sudo gem install cocoapods
    如果网速不好,得重复执行这条命令,到最后提示安装成功即可!就这样,防不胜防的就安装好了cocoapods。

    三、做一个实验,在以前的项目中,用cocoapods导入AFNetworking库:(如下步骤所示)
    导入前的工程目录结构如下图所示:
    2
    在导入第三方库之前,需要判断该库是否支持cocoapods,验证是否支持只需要如下命令:
    $ pod search AFNetworking
    运行之后,出现如下所示情况,说明AFNetworking还是支持cocoapods的。
    3
    (其实比较长,我只是截图一部分下来说明下的)

    需要用cocoapods直接导入AFNetworking,需要一个配置文件,cocoapods 安装和更新第三库,都是按照一个文件名字叫做PodFile的来执行的。
    在终端中进入(cd命令)你项目所在目录,然后在当前目录下,利用vim创建Podfile,和CNTaiPingPension.xcodeproj在同一文件夹下(平级)
    $ vim PodFile 
    (如果是第一次,vim PodFile 就是创建一个新的,以后都是打开修改即可)
    然后在Podfile文件中输入以下文字:

    platform :ios, ‘7.0’ 
    pod AFNetworking~> 2.0

    这2条术语可以在AFNetworking的github页面找到,一般第三方支持cocoapods都会提示的。写完按esc 再按shift + : 输入wq(保存并退出),q (退出不保存)
    这时候 ls 一下 发现已经多了一个文件,即:
    4
    现在再执行
    $ pod install
    回车等出现如下提示,说明成功了 失败就多试几次 网络不好没办法:
    5
    它让你关掉XCODE在点击CNTaiPingPension.xcworkspace运行项目,而不是之前的CNTaiPingPension.xcodeproj。现在项目中的目录结构如下所示:
    7

    看看 还多了一个Podfile.lock和Pods文件夹,咦,刚才导入的AFNetworking在哪呢?点击Pods,原来在这:如下图:
    6

    OK!至此,利用cocoapods导入AFNetworking成功了!这其实只是一小部分,以后再整理了!太神奇了,好东西,值得分享!

  • 相关阅读:
    HBTC 2012 Hadoop与大数据技术大会演讲PPT资料
    DLINQ *.dbml文件该属于哪一层
    建立用户、密码类型
    关于VS2005网站发布问题的继续探讨
    MS SqlServer 2000交换排序的一种方法
    Socket多线程编程委托控件的奇怪问题
    .Net 3.5(LINQ,AJAX) Web简易聊天室 源码
    数据层的逻辑
    VS2005在开发Addin(外接程序)时自动生成的bug
    钩子注入
  • 原文地址:https://www.cnblogs.com/zhangguoliang1992/p/4782395.html
Copyright © 2011-2022 走看看