Advertisement

安装CocoaPods遇到的问题及解决办法

阅读量:

1.打开Terminal,然后键入以下命令:

$ sudo gem install cocoapods

执行完报错:

复制代码
    ERROR:  Could not find a valid gem 'cocoapods' (>= 0), here is why:
          Unable to download data from https://rubygems.org/ - Errno::ECONNRESET: Connection reset by peer - SSL_connect (https://rubygems.org/latest_specs.4.8.gz)
    
      
      
    
    代码解读

由于 ruby 的软件源 rubygems.org 因使用亚马逊云服务而无法通过国内访问。必须重新获取 ruby 的源代码,并可以通过淘宝提供镜像下载(将原本 http 链接改为 https 链接)。

复制代码
    $ gem sources -l (查看当前ruby的源)
    $ gem sources --remove https://rubygems.org/
    $ gem sources -a https://ruby.taobao.org/
    $ gem sources -l
    
      
      
      
      
    
    代码解读

这个时候显示为

复制代码
    *** CURRENT SOURCES ***
    
    https://ruby.taobao.org/
    
      
      
      
    
    代码解读

如果gem太老,可以尝试用如下命令升级gem

$ sudo gem update –system

升级成功后会提示:RubyGems system software updated

然后重新执行安装下载命令

$ sudo gem install cocoapods

又出现错误

复制代码
    ERROR:  While executing gem ... (Errno::EPERM)
    Operation not permitted - /usr/bin/fuzzy_match
    
      
      
    
    代码解读

访问该网页以获取解决方案:按照以下步骤操作

复制代码
    sudo gem install -n /usr/local/bin cocoapods
    
      
    
    代码解读

然后看到提示15 gems installed说明完成安装

2.接下来进行安装,执行:

$ pod setup

终端程序陷入了Setting up CocoaPods master repo的状态较长时间(因此我得以在这段时间内持续更新我的博客内容)

由于长期等待的时间实在过长,请讲解一下为何需要安装CocoaPods吧?而其他人都已经开始安装了难道大家对此还存在疑惑吗?

3.为什么需要CocoaPods

在开发iOS应用的过程中,难免会依赖第三方开源库.如SBJson、AFNetworking、Reachability等工具.在使用这些工具时通常会涉及:初始化配置文件,编写代码调用功能,处理返回数据以及处理网络请求等环节.在实际开发中可能会遇到的问题包括:权限管理不足,网络连接不稳定以及数据解析复杂等问题.

  • 导入开源库的源代码至工程
  • 将工程中使用的开源库所属的框架导入
  • 检查并排查开源库内部依赖关系以及与工程层面依赖关系中的重复配置问题
  • 当遇到开源库版本更新时,请先删除当前工程中已引用的该开源库版本,并重新按照前几步操作流程进行配置调整。

自引入CocoaPods以来, 这些繁重的工作便不再是我们的负担, 仅需我们进行少量的配置操作, 搭载上相应的开发套件即可实现无缝集成. 借助其强大的自动化处理机制及完善的生态系统支持, 我们能够轻松完成系统搭建与功能扩展任务.

4.什么是CocoaPods

CocoaPods是一个辅助管理第三方依赖库的应用程序。它能够处理各独立项目之间的相互依赖问题,并提供相应的源代码包下载功能。通过建立一个Xcode项目工作区的方式,在方便地将外部依赖与本地项目整合在一起。

使用CocoaPods的主要目标是帮助我们实现自动化处理、集中管理和直观操作来管理第三方开源库。

CocoaPods是iOS项目的依赖管理工具,该项目源码在Github上管理。开发iOS项目不可避免地要使用第三方开源库,CocoaPods的出现使得我们可以节省设置和第三方开源库的时间。
在使用CocoaPods之前,开发项目需要用到第三方开源库的时候,我们需要
1.把开源库的源代码复制到项目中
2.添加一些依赖框架和动态库
3.设置-ObjC,-fno-objc-arc等参数
4.管理他们的更新
在使用CocoaPods后,我们只需要把用到的开源库放到一个名为Podfile的文件中,然后执行pod install.Cocoapods就会自动将这些第三方开源库的源码下载下来,并且为我们的工程设置好响应的系统依赖和编译参数。

5.好了,setup成功了

等了好久好久,终于安装成功了,会看到一大段令人愉快的绿色的字

这里写图片描述

6.卸载

复制代码
    $ sudo gem uninstall cocoapods 
    
      
    
    代码解读

提示是否卸载,回“Y”

7.出现”Insecure world writable dir /Users/username in PATH, mode 040777”

输入以下语句可解决

复制代码
    $ chmod go-w /Users/username
    
      
    
    代码解读

参见 Stack Overflow 上的问题:在不安全的环境中,在可写目录下的用户登录路径模式下(mode 为 040777)当运行时参数为 ru 时会发生什么?

遇到'无法加载此文件 - cocoapodscore 并带有 LoadError 错误信息'的情况或是无论怎么尝试都无法完成安装都会显示'-bash: pod 命令不存在'的提示

按照前面正常的步骤安装,出现类似如下的问题:

复制代码
    jiuzhoudianqideMacBook-Pro:~ jiuzhoudianqi$ pod setup
    /Library/Ruby/Site/2.0.0/rubygems/core_ext/kernel_require.rb:54:in `require': cannot load such file -- cocoapods-core (LoadError)
    from /Library/Ruby/Site/2.0.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    from /Library/Ruby/Gems/2.0.0/gems/cocoapods-0.39.0/lib/cocoapods.rb:22:in `<module:Pod>'
    from /Library/Ruby/Gems/2.0.0/gems/cocoapods-0.39.0/lib/cocoapods.rb:17:in `<top (required)>'
    from /Library/Ruby/Site/2.0.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    from /Library/Ruby/Site/2.0.0/rubygems/core_ext/kernel_require.rb:54:in `require'
    from /Library/Ruby/Gems/2.0.0/gems/cocoapods-0.39.0/bin/pod:25:in `<top (required)>'
    from /usr/local/bin/pod:23:in `load'
    from /usr/local/bin/pod:23:in `<main>'
    
      
      
      
      
      
      
      
      
      
      
    
    代码解读

或者

复制代码
    jiuzhoudianqideMacBook-Pro:~ jiuzhoudianqi$ pod setup
    -bash: pod: command not found
    
      
      
    
    代码解读

等等无法解决的问题,解决办法是:卸载重装

复制代码
    $ sudo gem uninstall cocoapods-core cocoapods-downloader cocoapods
    
      
    
    代码解读

然后按照上面正常的步骤再来一次

复制代码
    $ sudo gem install -n /usr/local/bin cocoa pods
    ...
    3 gems installed
    $ pod --version
    0.39.0
    
      
      
      
      
      
    
    代码解读

参考Stack Overflow 链接地址


参考文献:

全部评论 (0)

还没有任何评论哟~