美文网首页00-OC
002-CocoaPods简析

002-CocoaPods简析

作者: AncientMing | 来源:发表于2017-04-29 11:50 被阅读29次

    上一篇:001-NSRunLoop及CFRunLoop浅析

    一、前记

    尽管公司里的项目没有用到CocoaPods(综合考虑的结果),但最近想看看特定版本的库,用下CocoaPods还是方便一点。一年没用这个了,需要回顾一下,记下这篇,以后要用可以来看。

    二、安装

    1、可用的源

    打开终端输入:

    gem sources
    

    如果是:

    https://rubygems.org/
    

    这个被墙了,用不了。需要换一个源,先删了没用的

    sudo gem sources --remove (错误的源)
    

    然后再添加正确的源:

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

    2、安装CocoaPods

    sudo gem install CocoaPods
    

    这里需要等待安装

    安装结束后,有提示,且

    pod 
    

    输入pod 加回车,会有帮助显示,这表示安装成功

    如果显示command not found 表示没有安装成功

    3、使用CocoaPods

    • 打开终端,输入:cd (空格) (项目拖进来)
    • 输入pod init (为了生成podFile,已经有了就不用此步骤了)
    • “#”是注释作用
    • platform :ios, ‘8.0’表示最低版本兼容8.0
    • use_frameworks! 支持swift语言
    • 配置写法 pod ‘第三方方库名称’,这个配置 写在 target 和 end 之间

    4、更新

    本来是使用命令

    pod update
    

    由于被墙,需要使用下面这个命令更新

    pod update --verbose --no-repo-update
    

    三、问题来了

    1、历史描述

    CocoaPods是一个可以帮你集中管理第三方库的开源项目,运行在Ruby的环境下,基于GitHub托管优势,你可以很方便的查阅目前依赖于CocoaPods的资源

    2、gem老化问题,可以试着升级gem

    sudo gem update --system
    

    3、使用CocoaPods镜像索引

    所有的项目的Podspec文件都托管在 https://github.com/CocoaPods/Specs 第一次执行pod setup时,CocoaPods会将这些podspec索引文件更新到本地的 ~/.cocoapods/目录下,这个索引文件比较大,有80M左右。所以第一次更新时非常慢。

    有人在gitcafe和oschina上建立了CocoaPods索引库的镜像,因为gitcafe和oschina都是国内的服务器,所以在执行索引更新操作时,会快很多。如下操作可以将CocoaPods设置成使用gitcafe镜像:

    第一步:删除master

    pod repo remove master
    

    第二步:将以上代码中的 https://gitcafe.com/akuandev/Specs.git 替换成 http://git.oschina.net/akuandev/Specs.git 即可使用oschina上的镜像。

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

    第三步: 更新

    4、镜像不可用问题

    因为有人说淘宝源不能用了,虽然我现在使用时还能用,为了以防万一,还是要有解决方案

    第一种安装:git clone方法安装cocoapods

    在终端中,进入该目录

    cd ~/.cocoapods/repos
    

    若没有以上目录,执行下面指令,出现.cocoapods的目录后可以ctrl+c终止安装。sudo gem install cocoapods是常规的安装方法,不过现在只是用来建立一下.cocoapods目录。手动建立.cocoapods目录应该也是可以的,不过没试过。如果能进入~/.cocoapods/repos的目录就忽略下面一条指令。

    sudo gem install cocoapods
    

    克隆一个Specs库,在终端必须进入到~/.cocoapods/repos的目录才执行以下命令。

    git clone https://github.com/CocoaPods/Specs
    

    完成后,执行open .打开当前目录repos

    open .
    

    然后把Specs目录改名为master即可。(~/.cocoapods/repos的目录层级)

    如果gitclone还慢的话,直接上 https://github.com/CocoaPods/Specs 点击下载。根据上面的目录结构图,放对了就好。

    安装中可能遇到的问题:

    运行pod后显示:"pod: command not found"的错误。赋予/usr/local/bin给予执行与读取权限,执行以下命令。若不行执行sudo chmod 777 /usr/local/bin/。

    sudo chmod 700 /usr/local/bin/
    

    安装cocoa pods后,在终端执行pod search第三方框架时出错:[!] Unable to find a pod with name, author, summary, ordescriptionmatching AFNetworking

    解决方案:执行

    rm ~/Library/Caches/CocoaPods/search_index.json
    

    然后再执行pod search第三方框架

    pod search afnetworking
    

    按q退出搜索。

    第二种安装:
    添加新镜像 https://gems.ruby-china.org

    gem sources -a https://gems.ruby-china.org/
    

    安装:苹果系统升级 OS X EL Capitan 后改为

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

    更新gem

    sudo gem update --system
    

    新建文件 vim “Podfile” (终端vim文件 按 i 可编辑 ,esc 退出编辑,:wq 可保存退出)

    vim Podfile
    

    5、执行pod install还是pod update都卡

    原因在于当执行以上两个命令的时候会升级CocoaPods的spec仓库,加一个参数可以省略这一步,然后速度就会提升不少。加参数的命令如下:

    pod install --verbose --no-repo-update
    
    pod update --verbose --no-repo-update
    

    6、搜索第三方出现-bash: pod: command not found的错误

    解决方案:命令一:

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

    命令二:

    sudo chmod +rx /usr/local/bin
    

    7、上述第4点第一种方案,完全没有安装过的用户是没有~/.cocoapods目录的

    可以采用第二种方案
    下一篇:003-移动支付01-微信支付-账号申请

    相关文章

      网友评论

        本文标题:002-CocoaPods简析

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