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

字数 590阅读 58

在创建了自己的私有类库后,使用 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的公开库一样,需要指定自己私有的资源地址!!!!

推荐阅读更多精彩内容