CocoaPods安装教程&使用说明&问题解决(

作者: manofit | 来源:发表于2016-12-01 09:53 被阅读144次

    最近开始把项目里面用到的第三方库用CocoaPods方法添加,过程中遇到一些问题,现在把安装过程,使用方法,及本人遇到的问题和亲测的有效方法记录在此。

    一。安装

    1.ruby环境搭建

    本人用的是Mac Book,本身自带ruby环境,但是为了后期安装,最好还是更新一下ruby环境

    clf:Cowa gaojun$ gem -v
    

    如果发现不是最新的版本,可以执行下面命令

    clf:Cowa gaojun$ gem update --system
    

    更新完以后,再次执行上面命令,提示如下

    Latest version currently installed. Aborting.
    

    说明你电脑当前的ruby环境是最新的环境。

    上面是假设你的电脑已经有了ruby环境,当电脑上没有ruby环境时候,需要我们自己搭建,指令如下

    gem sources --remove https://rubygems.org/ 
    gem sources -a https://ruby.taobao.org/ 
    

    这是现在网上绝大多数安装ruby镜像到的地址,是淘宝的,但是现在这个地址很不稳定,好在笔者已经找到一个目前最新的稳定地址,更新命令如下

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

    这是ruby环境在国内的最新镜像地址,分享给大家了。大家可以看下这个通知[https://ruby-china.org/topics/29250]

    下面,继续命令

    clf:Cowa gaojun$ gem sources -l
    

    你会看到

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

    说明你的ruby环境已经搭建成功了。

    2.安装cocoapods

    执行命令

    clf:Cowa gaojun$ sudo gem install cocoapods
    

    稍后你会看到

    Successfully installed cocoapods-1.1.1
    Parsing documentation for cocoapods-1.1.1
    1 gem installed
    

    现在,用终端cd到你的项目更目录

    clf:~ gaojun$ cd Desktop/Cowa
    

    然后执行

    vim Podfile
    

    编辑Podfile文件,这里面存放项目里面用到所有的库的版本信息,键盘输入 i 键,进入编辑模式,编辑完成以后,先按下 esc 键,再按下 : w q 键,完成编辑。执行命令

    clf:Cowa gaojun$ pod install
    

    这个过程需要等待很久的,因为初始加载你所需要的库文件。

    等待安装完成,至此,已经成功为项目添加了依赖库。打开项目文件夹,项目目录类似这样

    屏幕快照 2016-12-01 09.26.23.png

    二。使用

    以后打开工程,只要直接打开“Cowa.xcworkspace”即可。在这里,也可以看到刚刚用终端编辑的Podfile文件,以后我们也可以直接在项目中编辑Podfile文件,然后保存,最后执行pod install即可。

    最新版本的cocoapods对Podfile文件编辑的格式有了规定,格式如下

    屏幕快照 2016-12-01 09.30.40.png

    库名称后面的标记是指定更新到哪一个版本,如果删除,则每次更新到最新版本。

    这里记录下 pod install 和 pod update 的区别

    • pod install :这个是第一次在工程里面使用pods的时候使用,并且,也是每次你编辑你的Podfile(添加、移除、更新)的时候使用。每次运行pod install命令的时候,在下载、安装新的库的同时,也会把你安装的每个库的版本都写在了Podfile.lock文件里面。这个文件记录你每个安装库的版本号,并且锁定了这些版本。当你使用pod install它只解决了pods里面,但不在Podfile.lock文件里面的那些库之间的依赖。对于在Podfile.lock里面所列出的那些库,会下载在Podfile.lock里面明确的版本,并不会去检查是否该库有新的版本。对于还不在Podfile.lock里面的库,会找到Podfile里面描述对应版本(例如:pod "MyPod", "~>1.2")。
    • pod update:当你运行 pod update PODNAME 命令时,CocoaPods会帮你更新到这个库的新版本,而不需要考虑Podfile.lock里面的限制,它会更新到这个库尽可能的新版本,只要符合Podfile里面的版本限制。如果你运行pod update,后面没有跟库的名字,CocoaPods就会更新每一个Podfile里面的库到尽可能的最新版本。

    所以,可以这样理解:你应该使用pod update PODNAME去只更新某个特定的库(检查是否有新版本,并尽可能更新到新的版本)。对应的,你应该使用pod install,这个命令不会更新那些已经安装了的库。当你在你的Podfile里面添加了一个库的时候,你应该使用pod install,而不是pod update,这样既安装了这个库,也不需要去更新其它的已安装库。你应该使用pod update去更新某个特定的库,或者所有的库(在Podfile的限制中)。

    我们也可以使用pod去查找一些库

    clf:Cowa gaojun$ pod search Alamofire
    

    三。问题解决

    这里只是列出了自己遇到的一些问题,在国内的很多个人博客,论坛上面的答案各不一样,实在害人不浅~~~
    1.Unable to add a source with url https://github.com/CocoaPods/Specs.git named master.
    You can try adding it manually in ~/.cocoapods/repos or via pod repo add.

    解决:分两次运行下面命令

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

    2.xcode报错:Command /bin/sh failed with exit code 126

    解决:执行pod install

    3.While executing gem ... (Errno::EPERM) Operation not permitted - /usr/bin/pod

    解决:执行命令

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

    4./Library/Ruby/Site/2.0.0/rubygems.rb:270:in find_spec_for_exe': can't find gem cocoapods (>= 0.a) (Gem::GemNotFoundException) from /Library/Ruby/Site/2.0.0/rubygems.rb:298:inactivate_bin_path'
    from /usr/local/bin/pod:22:in `<main>'

    解决:按照上面步骤重新更新ruby环境

    5.[!] /usr/bin/git clone https://github.com/romaonthego/RESideMenu.git /var/folders/hb/0_fyfkq52pg7phjnb1523pz00000gp/T/d20161130-24596-uh23fv --template= --single-branch --depth 1 --branch 4.0.7

    Cloning into '/var/folders/hb/0_fyfkq52pg7phjnb1523pz00000gp/T/d20161130-24596-uh23fv'...
    error: RPC failed; curl 56 SSLRead() return error -36
    fatal: The remote end hung up unexpectedly
    fatal: early EOF
    fatal: index-pack failed

    解决:这个我理解的是服务器不稳定,还没有下载完就挂起的原因,所以只要坚持不懈的不停pod install就可以了。

    6.找不到头文件

    解决:在TARGETS -> Search Paths -> User Header Search Paths 中 写入 ${SRCROOT} 再将后面参数改为recursive

    7.ERROR: While executing gem ... (Errno::EPERM)
    Operation not permitted - /usr/bin/pod

    解决: sudo gem install -n /usr/local/bin cocoapods

    8.ERROR: While executing gem ... (Errno::EPERM)
    Operation not permitted - /usr/bin/update_rubygems

    解决: https://stackoverflow.com/questions/33015875/operation-not-permitted-usr-bin-update-rubygems

    (持续更新中...)

    相关文章

      网友评论

        本文标题:CocoaPods安装教程&使用说明&问题解决(

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