前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Cocopods| 使用自己的私有仓库时的一次报错记录

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

作者头像
進无尽
发布2018-09-12 17:40:24
2.3K0
发布2018-09-12 17:40:24
举报

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.05.24 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 真正的解决办法:[!] Unable to find a specification for "JWJFramework"
  • 原来自己创建的私有库使用的时候不跟Cocoapods的公开库一样,需要指定自己私有的资源地址!!!!
相关产品与服务
命令行工具
腾讯云命令行工具 TCCLI 是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。此外,您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档