CocoaPods|安装流程与使用

作者: 夏浩文 | 来源:发表于2019-09-28 23:11 被阅读0次
    系统环境:macOS CataLina 10.15.2

    1. 安装 RVM

    • 开始安装
    curl -L get.rvm.io | bash -s stable
    
    • 进入目录
    source ~/.bashrc
    source ~/.bash_profile
    
    • 成功后查看版本
    rvm -v
    

    2. Ruby升级

    • 获取Ruby版本
    ruby -v
    
    • 对比Ruby版本
    rvm list known
    
    • 更新Ruby
    rvm install 2.7.0-preview1
    

    3. 更换Ruby源

    • 查看当前源
    gem sources -l
    
    • 移除默认源
    gem sources --remove https://ruby.taobao.org/
    
    • 替换源
    gem sources -a https://gems.ruby-china.com/
    

    (尾巴这条斜杆需要斟酌移除)

    4. 安装CocoaPods

    1. OS X 10.11之前系统的安装cocoapods 指令
    $ sudo gem install cocoapods
    
    1. OS X 10.11以后系统的安装cocoapods 指令
    $ sudo gem install -n /usr/local/bin cocoa pods
    
    • 安装
    pod setup
    
    • 完成之后
    pod --version //查看版本
    
    • 测试一下
    pod search afnetworking
    

    使用流程

    cd 目标路径
    pod init
    
    • 然后操作Podfile文件,一般使用vim
      # Uncomment the next line to define a global platform for your project
    platform :ios, '8.0'
    
    target 'ProjectName' do
      # Uncomment the next line if you're using Swift or would like to use dynamic frameworks
      # use_frameworks!
    
      pod 'AFNetworking'
    
    end
    
    • 完成它
    pod install
    
    • 如若比较慢,可使用{🔽},无须更新本地库情况下(更新同理)
    pod install --no-repo-update
    

    打开白色工程 projectName.xcworkspace

    5. 更新CocoaPods

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

    6. 更新CocoaPods 1.8.+版本本地库

    • 1.8+强制安装了新的源trunk,采用cdn替换了原本的master
    • 直接通过cdn方式更新本地库
    iMac:mac$ pod install
        Analyzing dependencies
        Adding spec repo `trunk` with CDN `https://cdn.cocoapods.org/`
        Downloading dependencies
        Generating Pods project
        Integrating client project
        Pod installation complete! There are 28 dependencies from the Podfile and 32 total pods installed.
    

    附录

    • 查看已下载各Pod版本
      可直接打开Podfile.lock查看,例如:
    PODS:
      - UMCAnalytics (6.0.5):
        - UMCCommon
      - UMCCommon (2.1.1)
      - UMCSecurityPlugins (1.0.6)
    

    问题与解决


    更新系统Or Xcode产生的问题
    1. 在更新OS或Xcode之后
      出现 Failed to extract git version from ·git --version· 🔽
    macdeMacBook-Air:~ mac$ pod --version
    Traceback (most recent call last):
        7: from /Users/mac/.rvm/rubies/ruby-2.7.0-preview1/bin/ruby_executable_hooks:24:in `<main>'
        6: from /Users/mac/.rvm/rubies/ruby-2.7.0-preview1/bin/ruby_executable_hooks:24:in `eval'
        5: from /Users/mac/.rvm/rubies/ruby-2.7.0-preview1/bin/pod:23:in `<main>'
        4: from /Users/mac/.rvm/rubies/ruby-2.7.0-preview1/bin/pod:23:in `load'
        3: from /Users/mac/.rvm/rubies/ruby-2.7.0-preview1/lib/ruby/gems/2.7.0/gems/cocoapods-1.8.4/bin/pod:55:in `<top (required)>'
        2: from /Users/mac/.rvm/rubies/ruby-2.7.0-preview1/lib/ruby/gems/2.7.0/gems/cocoapods-1.8.4/lib/cocoapods/command.rb:49:in `run'
        1: from /Users/mac/.rvm/rubies/ruby-2.7.0-preview1/lib/ruby/gems/2.7.0/gems/cocoapods-1.8.4/lib/cocoapods/command.rb:130:in `verify_minimum_git_version!'
    /Users/mac/.rvm/rubies/ruby-2.7.0-preview1/lib/ruby/gems/2.7.0/gems/cocoapods-1.8.4/lib/cocoapods/command.rb:118:in `git_version': Failed to extract git version from `git --version` ("xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun\\n") (RuntimeError)
    
    • 解决方法
    xcode-select --install
    
    1. 更新系统后若发生 No such file or directory🔽
    xiaowen:~ natsuhirofumi$ pod --version
    -bash: /usr/local/bin/pod: /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby: bad interpreter: No such file or directory
    
    • 解决方法
    // 指定缺失路径安装
    sudo gem install -n /usr/local/bin cocoapods
    

    更新CocoaPods 1.8+CDN产生的问题
    • 早在1.7.2 CocoaPods就将源方式切换成CDN方式

    CDN support was first introduced in the 1.7 release and was finalized in 1.7.2. It aims to speed up initial setup and dependency analysis dramatically.

    • 但在1.8+中CDN方式成为默认选项

    CocoaPods 1.8 switches the CDN as the default spec repo source

    1. RPC failed; curl 56 LibreSSL SSL_read: SSL_ERROR_SYSCALL, errno 54
      更新本地库出现报错
    • 解决方法:

    git clone https://git.coding.net/CocoaPods/Specs.git ~/.cocoapods/repos/master

    • 网络欠佳可以试试别的源
    ///因Coding停止维护,可切别的源~
    * https://code.aliyun.com/Magi/CocoaPods.git   
    * https://gitclub.cn/CocoaPods/Specs.git `推荐`
    
    • 如还是无法解决,可参照下面DNS污染问题尝试解决(修改host)
    1. 如果pod install中发现:
    You have either: 
    * out-of-date source repos which you can update with `pod repo update`.
    * mistyped the name or version. 
    * not added the source repo that hosts the Podspec to your Podfile.
    
    Note: as of CocoaPods 1.0, `pod repo update` does not happen on `pod install` by default.
    
    • 可尝试直接更新最新版本
    sudo gem install cocoapods --pre
    
    • 如果还是不行,可移除缓存重新安装,或者
      ⌘ + ⇧ + G 进入repos目录直接删除master/trunk
    // 移除本地master
    sudo rm -fr ~/.cocoapods/repos/master
    // 移除本地缓存
    sudo rm -fr ~/Library/Caches/CocoaPods/
    -------------方法分隔线-------------
    // repos目录
    ~/.cocoapods/repos/
    
    • 移除本地库后
    // 重新setup,如果很慢可使用问题1的解决方法(git clone)
    pod setup --verbose
    

    出现最多的连接问题
    1. 更新时,CocoaPods 1.8.0 的trunk连接失败的问题

    [!] CDN: trunk URL couldn't be downloaded: https://raw.githubusercontent.com/CocoaPods/Specs/master/Specs/ Response: 400
    或者是
    [!] CDN: trunk Repo update failed - 70 error(s): CDN: trunk URL couldn't be downloaded: [库信息], error: Failed to open TCP connection to raw.githubusercontent.com:443
    亦或是
    [!] CDN: trunk Repo update failed - 14 error(s): CDN: trunk URL couldn't be downloaded: https://raw.githubusercontent.com/CocoaPods/Specs/master/Specs/[库路径].podspec.json Response: Couldn't connect to server

    解决方法一(使用旧下载方式)
    • 打开podfile文件,顶部添加{🔽},指定旧方式下载
    //source `源地址`
    source 'https://github.com/CocoaPods/Specs.git'
    
    • 因为脱离trunk方式,亦可移除trunk
    pod repo remove trunk
    
    • 可确认是否已移除trunk
    pod repo list
    
    解决方法二(解决DNS污染问题)
    • CDN方式以trunk代替Master
    • 编辑Podfile,将CDN设置为主要来源,1.8+已是默认项
    - source 'https://github.com/CocoaPods/Specs.git'
    + source 'https://cdn.cocoapods.org/'
    
    • 移除本地库
    pod repo remove master
    
    • ping 出ip 地址
    ping raw.githubusercontent.com
    
    • 获取ip地址后 + c 退出

      捕获ip地址
    • 或使用nslookup

    nslookup raw.githubusercontent.com
    
    ----------------------------------->>
    Server:     192.168.31.1
    Address:    192.168.31.1#53
    
    Non-authoritative answer:
    Name:   raw.githubusercontent.com
    Address: 151.101.228.133
    
    • 修改/etc/hosts
    sudo vi /etc/hosts
    
    • i 编辑模式
    // 添加在最后一行
    151.101.228.133 raw.githubusercontent.com
    
    如图所示
    • 刷新DNS缓存
    sudo killall -HUP mDNSResponder
    
    • 重试
    pod install
    
    ---皆大欢喜---
    Analyzing dependencies
    Downloading dependencies
    Installing AFNetworking (3.2.1)
    Installing UMCAnalytics (6.0.5)
    Installing UMCCommon (2.1.1)
    Installing UMCSecurityPlugins (1.0.6)
    Generating Pods project
    Integrating client project
    Pod installation complete! There are 4 dependencies from the Podfile and 4 total pods installed.
    
    • 同理网络问题,可获取对应ip地址写进host直接访问

    ##
    # Host Database
    #
    # localhost is used to configure the loopback interface
    # when the system is booting.  Do not change this entry.
    ##
    127.0.0.1       localhost
    255.255.255.255 broadcasthost
    ## github
    13.250.177.223 github.com
    69.171.244.12 github.global.ssl.fastly.net
    199.232.28.133 raw.githubusercontent.com (真实ip)
    ## cocoa
    157.230.35.153 cdn.cocoapods.org
    ~ 
    /** 
    * 说明:
    * 未标记真实ip,直接通过nslookup获取
    **/
    

    推广

    希望这个头疼的CDN/TRUNK问题解决方法能帮助你们~
    顺便推广一下我的香港🇭🇰代购微信号~ 过节送礼找我就对啦~
    🌸iYours 🌸

    相关文章

      网友评论

        本文标题:CocoaPods|安装流程与使用

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