Cocopods| 使用自己的私有仓库时的一次报错记录

在创建了自己的私有类库后,使用 pod search 搜索后可以找到:

但是在使用 podfile文件 pod install 安装时却报错:

查看本地的 cocoapods repos 有没有时,发现没有我们想要的类库:JWJFramework

然后打开隐藏目录 .cocoapods (这个目录在你的个人目录底下, ~/.cocoapods 或 /Users/[username]/.cocoapods)
.cocoapods 目录下的 repos 其实是 repository (仓库)的缩写。 repos 中存放的时仓库的集合。
这里的 master 就是 CocoaPods 官方建立的仓库,也就是我们所谓的公共库。

specs 目录下存放的就是所有提交到 CocoaPods 的开源库的 podspec 文件的集合。
其组成方式:  specName -- version -- specName.podspec
( master 里现在是 specName.podspec.json,这个 .json 文件就是 podspec 文件加了个后缀。
  我们可以采用 pod ipc spec 这个命令来将 spec 文件转换成 .json)

以为需要更新下pods;结果发现报错:Failed to connect to GitHub update the Cocoapods /Specs repo -- Please check if you are offline, or that GitHub is down.

尝试使用 homeBrew升级 ruby环境,报错了。

终端执行pod setup pod update 报错 -- [!] Failed to connect to GitHub to update the CocoaPods/Specs specs repo - Please check if you are offline, or that GitHub is down

一. 如果你的Ruby运行环境大于2.0.0的话可以升级cocoapods解决,查看当前ruby终端命令ruby -v
 
   1、更新gem:sudo gem update --system
   2、删除gem源:gem sources --remove https://ruby.taobao.org/
   3、修改gem源:gem sources -a https://gems.ruby-china.org
   4、查看gem源是否是最新的:gem sources -l
   5、升级cocoapods:sudo gem install -n /usr/local/bin cocoapods --pre
   6、查看升级后的cocoapods版本:pod --version


二.如果你的Ruby运行环境小于等于2.0.0不能使用了,那么就需要更新Ruby运行环境

    1、安装 RVM
    RVM:Ruby Version Manager,Ruby版本管理器,包括Ruby的版本管理和Gem库管理(gemset)
       $ curl -L get.rvm.io | bash -s stable  
  
     等待一段时间后就可以成功安装好 RVM。(等着就好了,不到10秒吧.)
       $ source ~/.bashrc  
       $ source ~/.bash_profile
     测试是否安装正常,(以上两个命令行敲了不会显示什么,但是需要敲)
      显示版本:rvm -v  

    2、用RVM升级Ruby
       #查看当前ruby版本  
         $ ruby -v  
       #列出已知的ruby版本  
         $ rvm list known
       #安装ruby  2.3
         $ rvm install  2.3  

      安装完成会显示这个:(一些绿色的代码,大概不到30行吧.最后一行会显示下边的内容,表示你安装成功了2.3版本)
      Install of ruby-2.3.0 - #complete 
      Ruby was built without documentation, to build it run: rvm docs generate-ri
      安装完成之后ruby -v查看是否安装成功。

    3、安装cocoapods

      A.先升级Gem(可以省略)
        sudo gem update --system
      B.切换cocoapods的数据源
       【先删除,再添加,查看】
        gem source --remove https://rubygems.org/
        gem source -a https://ruby.taobao.org/
        gem source -l
      C.安装cocoa pods  (完了需要输入你的账户密码的)
        sudo gem install -n /usr/local/bin cocoapods
      D.设置pod仓库
        pod setup

在使用RVM安装 ruby的时候,报错了,需要安装xcode 命令行工具

xcode-select --install

使用 ruby 更新Cocoapods

再次pod setup、pod update 又报错了

这些怎么解决呢? 其实mac OS 10.11之后, cocoapods的一些命令需要进行变化,如果你遇到了pod setup或者pod update 的问题了, 而且很难解决, 我建议不如卸载重装. 10.11 之后, 安装cocoapods有一些不同的命令,下面总结一下:

1.检查ruby环境,若需要请按如下更新

  $ sudo gem update --system

2.卸载cocoapods

  $ sudo gem uninstall cocoapods
  这个选项选择 Y,选n的话后续有可能报出很多莫名的错误: 
  in addition to the gem? [Yn]  y

3.重装cocoapods (安装命令有变化)

10.11之前
    $ sudo gem install cocoapods
10.11之后
    $ sudo gem install -n /usr/local/bin cocoapods

4.继续设置

    $ sudo chmod +rx /usr/local/bin
    $ sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer

5.将 CocoaPods Specs repository复制到你电脑上~/.cocoapods目录下

  pod setup
  这个命令第一次执行超级慢,等了大概3个小时,最后终于 setup 好了

终于 pod setup成功了。但是在使用 podfile文件 pod install 安装时还是会报错。

真正的解决办法:[!] Unable to find a specification for "JWJFramework"

其实原因是你在 Podfile 中没有指定路径,当你执行 pod install 的时候,CocoaPods 默认只会在 master 下搜索,而我们的 spec 是存在我们私有的 JWJFramework 目录下的。所以解决方式很简单,就是引入搜索地址即可,在 Podfile 的顶部添加如下两行代码:

source 'https://github.com/CocoaPods/Specs.git'     #官方仓库地址
source 'https://gitee.com/fangmei/JWJFramework.git'  #私有仓库地址

这里必须添加两个地址,默认情况下,你如果不添加 source ,系统会默认使用官方仓库地址,但是当你添加了 source 之后,系统就不会自动搜索官方地址,所以这两句都必须添加,否则其他基于官方的依赖库都不能使用了。

原来自己创建的私有库使用的时候不跟Cocoapods的公开库一样,需要指定自己私有的资源地址!!!!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏有趣的django

27.git的简单使用

安装 https://git-scm.com/downloads 一直点下一步就可以,安装完后打开方法:‘开始菜单’-->'Git'-->''Git Bash ...

34760
来自专栏青玉伏案

Git知识总览(二) git常用命令概览

上篇博客我们从 git clone 和 git status 两个命令开始,引出了一系列的git操作命令, 请参见:《Git知识总览(一) 从 git clon...

30480
来自专栏iOSDevLog

在Bitbucket Cloud上发布网站

现在可以在yoursitename.bitbucket.io上访问Bitbucket Cloud上托管的静态站点。除了将链接更新为指向https://yours...

20730
来自专栏Java后端技术

谈谈分布式版本管理工具Git

Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的...

15120
来自专栏小李刀刀的专栏

Laravel 5.5 的 “vendor:publish” 新增 provider 提示

在以前的版本中,当使用 artisan vendor:publish 命令来发布扩展包的资源时,需要自己指定 --provider 参数或者 --tag 参数来...

40040
来自专栏游戏杂谈

shell删除指定目录下的svn目录

在发布或是部署一些项目时,需要先将资源上传到服务器。环境一般分为:本机、内网、公网,公网的话,考虑带宽问题,一般不允许将.svn目录和Thumbs.db文件上...

36050
来自专栏埋名

Git 常用命令清单笔记

这里是我的笔记,记录一些git常用和一些记不住的命令,这个笔记原本是基于 颜海镜的文章增加的,后面慢慢增加了许多内容,可以看出的的学习轨迹。分享出来方便自己查看...

12130
来自专栏玩转JavaEE

Spring Cloud Zuul中路由配置细节

上篇文章我们介绍了API网关的基本构建方式以及请求过滤,小伙伴们对Zuul的作用应该已经有了一个基本的认识,但是对于路由的配置我们只是做了一个简单的介绍,本文我...

66250
来自专栏友弟技术工作室

Git从0到1

本文只是帮助你入门,从一个不会使用git的小白,到会解决开发中常见的使用。 废话不多说,直接进入正题。 ? 最远处 git git是用于Linux内核开发的...

441120
来自专栏古时的风筝

使用 github 做代码管理,知道这些就够了

只要掌握了下面的常用命令,基本上用使用 github 就没有问题。github 有两种认证方式,一种是通过 ssh 私钥的方式,一种通过 https 的账号名...

36980

扫码关注云+社区

领取腾讯云代金券