zoukankan      html  css  js  c++  java
  • iOS CocoaPods安装和使用图解

    Cocoapods安装步骤

    一、升级Ruby环境

    sudo gem update --system

    如果Ruby没有安装,请参考 如何在Mac OS X上安装 Ruby运行环境

    二、使用官方的RubyGems镜像

    安装CocoaPods时我们要访问cocoapods.org,用官方的RubyGems镜像来代替官方版本,执行以下命令:

    gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/

    为了验证你的Ruby镜像,可以用以下命令查看:

    $ gem sources -l

    只有在终端中出现下面文字才表明你上面的命令是成功的:

    *** CURRENT SOURCES ***
    https://gems.ruby-china.org

    上面的命令,有时试了会没有效,请参考https://gems.ruby-china.com

    $ gem sources --add https://gems.ruby-china.org/ --remove https://rubygems.org/
    $ gem sources -l
    *** CURRENT SOURCES ***
    
    https://gems.ruby-china.org
    # 请确保只有 gems.ruby-china.org
    $ gem install rails

    三、在终端中输入如下命令来完成安装

    //将 CocoaPods Specs repository复制到你电脑上~/.cocoapods目录下
    pod setup

    它需要一点时间来完成,你等就是了
    如果安装失败 ~/.cocoapods 里面是空的,就需要重新setup
    命令如下:

    pod repo remove master  
    pod setup

    完毕之后这个文件夹大概有 100多M,需要花费比较多时间,请耐心等待。
    到这里你已经成功安装了CocoaPods

    当然,要是pod setup 失败,可以试试下面的方法:

    1.访问 https://github.com/CocoaPods/Specs,然后将Specs项目fork到自己的github账户上
    2. 下载GitHub Desktop, 然后clone Specs项目。
    3. 将clone的Specs项目的文件夹改名为master,然后拖到/Users/用户名/.cocoapods/repos目录下。
    4. 运行pod setup

    解释:pod setup的本质就是将https://github.com/CocoaPods/Specs上的Specs项目clone到/Users/用户名/.cocoapods/repos目录下。若此目录下已有Specs项目,则会将项目更新到最新的状态。由于Specs很大,容易导致pod setup失败。这时就需要我们手动安装Specs。若直接从github上下载zip文件,由于缺少git文件,会导致cocoa pods不使用。若用git clone,由于文件过大,容易导致失败。但是使用GitHub Desktop软件,则会提高clone的成功率,并且会给出clone的进度。

    或者通过命令:

    $ pod repo remove master
    $ git clone https://github.com/CocoaPods/Specs.git ~/.cocoapods/repos/master
    $ pod repo update

    Cocoapods使用

    1.使用search命令搜索类库名

    $ pod search AFNetworking

    得到结果如下图:

    从这个图上,我们看到AFN有好多版本,最新的版本是2.6.0.

    2.打开xcode,新建一个工程,工程名为CocoapodsSample。

    使用命令cd,cd后面跟的是工程目录名,可以直接拉进来,

    回车后,输入命令创建Podfile文件

    $ touch Podfile

    我们可以看到,在根目录下,多了一个Podfile文件

    3.使用vim编辑podfile文件,使用命令

    $ vim Podfile

    然后在Podfile文件中输入以下文字:

    platform :ios, '7.0'
    pod "AFNetworking", "2.5.0"

    这两句文字的意思是,当前AFNetworking支持的iOS最高版本是iOS 7.0, 要下载的AFNetworking版本是2.5.0。

    在编辑完后按 esc,然后按":",这个时候输入wq保存退出。

    这个时候打开Podfile文件就会看到里面添加了刚才在终端输入的两行语句,如下图

    4.这时候,你就可以利用CocoPods下载AFNetworking类库了。还是在终端中的当前项目目录下,运行以下命令:

    $ pod install 

    安装成功后,如下图:

    这个时候,会看到多了一个.xcworkspace工程,以后打开项目就用 CocoapodsSample.xcworkspace 打开,而不是之前的.xcodeproj文件。

    5.打开 CocoapodsSample.xcworkspace 工程,你会惊喜地发现,AFNetwoking已经成功导入项目了。

    现在,你就可以开始使用AFNetworking.h啦。可以稍微测试一下,在你的项目任意代码文件中输入:

    #import <AFNetworking.h>
    或者
    #import "AFNetworking.h"

    然后编译,看看是否出错。如果你严格按照小编上述的步骤来,是不可能出错的啦。

    另:

    如果有一些包已经存在了,或者我们更改了Podfile里面的版本,可以使用以下命令更新

    $ pod update

     关于Podfile文件编辑时,第三方库版本号的各种写法:

    pod ‘AFNetworking’      //不显式指定依赖库版本,表示每次都获取最新版本
    pod ‘AFNetworking’,  ‘2.0//只使用2.0版本
    pod ‘AFNetworking’, ‘>2.0//使用高于2.0的版本
    pod ‘AFNetworking’, ‘>=2.0//使用大于或等于2.0的版本
    pod ‘AFNetworking’, ‘<2.0//使用小于2.0的版本
    pod ‘AFNetworking’, ‘<=2.0//使用小于或等于2.0的版本
    pod ‘AFNetworking’, ‘~>0.1.2//使用大于等于0.1.2但小于0.2的版本,相当于>=0.1.2并且<0.2.0
    pod ‘AFNetworking’, ‘~>0.1//使用大于等于0.1但小于1.0的版本
    pod ‘AFNetworking’, ‘~>0//高于0的版本,写这个限制和什么都不写是一个效果,都表示使用最新版本

    Cocoapods 降级处理

     移除pod组件,查看pod的安装位置

    $ which pod

    手动删除这个组件

    $ sudo rm -rf <path>

    卸载当前版本

    sudo gem uninstall cocoapods

    下载指定版本。

    sudo gem install cocoapods -v 0.39.0

    查看当前pod 版本

    pod --version

    2018-10-07更新,不需要操作第一步和第二步,直接【卸载当前版本】,下载指定版本即可。

    如果在操作的过程中,报错如:

    则是因为 ruby 版本导致的,请参考淘宝网官方说明:https://ruby.taobao.org

    当前的解决方式直接更新一下ruby指向:

    $ gem sources --add https://gems.ruby-china.org/ --remove https://rubygems.org/

    报错2:Updating spec repo `master` [!] Failed to connect to GitHub to update the Co

    执行下面命令就好了

    sudo gem install -n /usr/local/bin cocoapods

    参考资料:

    http://code4app.com/article/cocoapods-install-usage

    http://www.cnblogs.com/wayne23/p/3912882.html

  • 相关阅读:
    急招.NET系列职位
    程序员成长的三个方法
    xwebkitspeech
    张小龙的产品
    浅析商业银行“业务连续性管理体系”的构建
    Sonar for dotNet
    Moles测试Contrustor时候遇到的一个问题
    EntityFramework 用Moles的mock
    Accessor中Generic的元素是internal/private的会导致转换失败的异常
    Android自用Intent 介绍
  • 原文地址:https://www.cnblogs.com/jys509/p/4839803.html
Copyright © 2011-2022 走看看