美文网首页首页投稿(暂停使用,暂停投稿)iOS OC 学习手册pod
CocoaPods安装、使用、提速、问题解决(2018.8.9更

CocoaPods安装、使用、提速、问题解决(2018.8.9更

作者: _YZG_ | 来源:发表于2016-06-29 03:37 被阅读693次

    环境

    macOS 10.13.4
    Xcode 9.3

    目录

    • 安装
    • 使用
    • 提速
    • 遇到的问题
    • 参考

    一、CocoaPods安装

    CocoaPods是用Ruby实现的,要想使用它首先需要有Ruby的环境。mac OS默认已经可以运行Ruby了,但是CocoaPods需要Ruby版本大于2.2.2。

    1、安装rvm

    rvm可以让你拥有多个版本Ruby,且可以在多个版本之间自由切换,如已安装跳到第2步(rvm -v查看是否安装)

    $ curl -L get.rvm.io | bash -s stable
    
    //需要等一会
    
    $ source ~/.bashrc
    
    $ source ~/.bash_profile
    

    等待终端加载完毕后输rvm -v查看,如显示版本则安装成功

    rvm
    2、安装Ruby

    CocoaPods需要Ruby版本大于2.2.2,如已安装跳到第3步(ruby -v查看版本)

    //列出ruby可安装的版本信息
    rvm list known
    
    rvm install 2.4  //安装一个ruby版本
    
    
    这里一定要设置为默认版本
    
    rvm use 2.4--default
    
    
    3、更换Gem的源

    Gem是一个管理Ruby库和程序的标准包,它通过Ruby Gem(如http://rubygems.org/)源来查找、安装、升级和卸载软件包。

    // 1.移除掉原有的源(服务器在国外,速度较慢)
    - gem sources --remove https://rubygems.org/
    taobao Gems 已停止维护,现在有ruby-china提供镜像服务,如果安装了则删除
    - gem sources --remove https://ruby.taobao.org/    
    // 2.等有反应之后再敲入以下命令
    - gem sources -a https://gems.ruby-china.org/ 
    // 3.验证是否替换成功
    - gem sources -l
    
    4、更新升级Gem版本

    Gem是管理Ruby库和程序的标准包,如果它的版本过低也可能导致安装失败,解决方案升级Gem。

    - sudo gem update --system
    
    或者mac OS 10.11之后
    sudo gem update -n /usr/local/bin —system
    
    5、安装CocoaPods
    // 如果之前有
    sudo gem uninstall cocoapods (移除原来的cocoapods)
    // 安装CocoaPods(OS X 10.11以前)
    - sudo gem install cocoapods
    // 安装CocoaPods(10.11后苹果升级了安全策略)
    - sudo gem install -n /usr/local/bin cocoapods
    
    6、更换repo镜像为国内服务器

    所有的项目的Podspec文件都托管在https://github.com/CocoaPods/Specs第一次执行 pod setup时, CocoaPods会将这些podspec索引文件更新到本地的 ~/.cocoapods/目录下,这个索引文件比较大,有80M左右。所以第一次更新时非常慢。
    一个叫akinliu的朋友在gitcafe和oschina上建立了CocoaPods索引库的镜像,因为gitcafe和oschina都是国内的服务器,所以在执行索引更新操作时,会快很多。如下操作可以将CocoaPods设置成使用gitcafe镜像:

    // 1.移除原有服务器
    - pod repo remove master
    如报错repo master does not exist 不必理会
    // 2.添加境内服务器
    (GitCafe 的服务已经从 2016 年 3 月 2 日 起合并至 Coding.net,2016 年 5 月 31 日正式关停服务)
    - pod repo add master https://gitcafe.com/akuandev/Specs.git
    
    - pod repo add master http://git.oschina.net/akuandev/Specs.git(开源中国较慢)
    
    - pod repo add master https://git.coding.net/CocoaPods/Specs.git
    
    如果报
    To setup the master specs repo, please run 'pod setup'
    
    - pod repo update
    换一种方式吧,方式如下
    
    
    在git配置ok的前提下,直接将文件clone一份到本地。然后将文件夹名改为master,并将其拖到/Users/用户名/.cocoapods/repos目录下即可。
    
    也可以直接用一条命令一步到位,直接跳过pod setup
    
    git clone https://git.coding.net/CocoaPods/Specs.git ~/.cocoapods/repos/master
    

    pod setup 官方解释

    7、 pod setup
    pod setup
    
    

    如报错

    sa.png

    执行

    sudo xcode-select -switch /Applications/Xcode9.1.app (Xcode 目录)
    

    如果失败则

    pod repo remove master
    
    pod setup
    

    // 如果需要更新的话

    pod repo update
    
    // 查看版本
    pod --version
    

    二、CocoaPods使用

    创建个名为Podfile文件,注意文件名大小写!!

    cd 工程目录
    // 搜索
    pod search + 库名
    vim Podfile
    // 写完之后安装就ok 
     :wq 保存退出
    pod install
    
    // 要更新的话
    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的版本,写这个限制和什么都不写是一个效果,都表示使用最新版本
    
    
    platform :ios, '8.0'
    # 在Swift中,Podfile的第一句必须写上
    use_frameworks! 
    target 'Test' do
    
    pod 'AFNetworking', '~> 3.1.0'
    
    end
    

    三、pod install提速

    每次执行pod installpod update的时候,cocoapods都会默认更新一次spec仓库。这是一个比较耗时的操作。在确认spec版本库不需要更新时,给这两个命令加一个参数跳过spec版本库更新,可以明显提高这两个命令的执行速度。

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

    四、遇到的问题

    4.1ETIMEDOUT: Operation timed out - connect(2) (https://ruby.taobao.org/specs.4.8.gz)

    链接超时根本更换不了, 可能公司网络的问题,经理说网络有限制,我走手机3G好用了。。。

    4.2Error installing cocoapods: activesupport requires Ruby version >= 2.2.2.
    安装 RVM baby 版本管理器 
    curl -L get.rvm.io | bash -s stable
    当出现
    In case of problems: https://rvm.io/helpandhttps://twitter.com/rvm_io
    执行 
    source ~/.bashrc
    source ~/.bash_profile  
    测试是否安装正常
    rvm -v
    会提示
    rvm 1.27.0 (latest) by Wayne E. Seguin, Michal Papis[https://rvm.io/]
    用RVM升级Ruby查看当前ruby版本
    ruby -v
    rvm list known
    会提示版本
    安装ruby2.2.2吧
    执行
    rvm install 2.2.2
    这里如果出现如下提示(没有直接跳过)
    Requirements installation failed with status: 1.
    执行下面的命令 卸载home-brew
    ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"
    完事之后再次执行
    rvm install 2.2.2
    完事之后安装cocoapods吧
    

    2016.3.10日更新

    4.3You can try adding it manually in ~/.cocoapods/repos or via pod repo add.

    可能安装多个Xcode或重装导致的

    解决方案

    sudo xcode-select -switch /Applications/Xcode7.3.1.app // 后面的路径直接拖就行
    
    4.4 Pods written in Swift can only be integrated as frameworks; add use_frameworks! to your Podfile or target to opt into using it. The Swift Pods being used are: ReactiveCocoa and Result

    解决方案

    增加use_frameworks!就好了
    
    4.5 更新pod后出现library not found for - xxx

    遇到的情况为找不到JCore1.1.3

    解决方案

    pod.png

    在build settings搜索缺失的库,删除就好了,因为JCore更新到1.1.5了

    2017.11.26日更新

    4.6 connect returned=1 errno=0 state=SSLv3 read servercertificateB:certificate verify failed (https://ruby.taobao.org/specs.4.8.gz)

    解决方案

    taobao Gems源停止维护,现由ruby-china提供镜像服务,更改源
    帖子https://ruby-china.org/topics/29250

    4.7 /Library/Ruby/Gems/2.3.0/gems/cocoapods-1.3.1/lib/cocoapods/command.rb:129:in `verify_minimum_git_version!': [!] You need at least git version 1.8.5 to use CocoaPods (Pod::Informative)

    解决方案

    sudo xcode-select -switch /Applications/Xcode9.1.app (Xcode 目录)
    
    4.8 其他莫名奇妙的问题
    $ sudo gem update --system
    $ sudo gem install cocoapods
    $ pod setup
    

    2018.8.9日更新

    macOS 10.13.6
    Xcode 9.4.1

    4.9 pod install报错:ArgumentError - Malformed version number string

    解决方案

    更新一下ruby

    查看所有ruby版本
    rvm list known

    查看当前ruby版本
    ruby -v

    找到最新的版本更新
    rvm install "ruby-2.4.1"

    可能需要更细系统版本和Xcode版本

    4.10Error running 'requirements_osx_brew_update_system ruby-2.4.1',

    解决方案

    brew update

    4.11curl: (56) LibreSSL SSL_read: SSL_ERROR_SYSCALL, errno 54

    解决方案

    Xcode 选择好

    4.12

    While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions for the /usr/bin directory.

    解决方案

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

    4.13Error installing AFNetworking

    解决方案

    网络问题

    五、参考

    http://www.jianshu.com/p/3086df14ed08
    http://blog.csdn.net/fairytale_1/article/details/51850734
    http://blog.csdn.net/fly601845/article/details/52152978
    http://www.jianshu.com/p/2ef8a38416c4
    https://ruby-china.org/topics/29250
    https://segmentfault.com/q/1010000005914910
    http://www.jianshu.com/p/6e5c0f78200a

    相关文章

      网友评论

        本文标题:CocoaPods安装、使用、提速、问题解决(2018.8.9更

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