Cocoa Pods 问题小结,不定时更新

1. RuntimeError - [Xcodeproj] Unknown object version. 问题解决

今天使用 Pods 时突然报错了,如下:

image.png
image.png

还有问题解决方案:

https://github.com/cocoapods/cocoapods/search?q=[Xcodeproj]%20Unknown%20object%20version.&type=Issues&utf8=

原因:这是因为你的 Xcode 版本和 CocoaPods 的版本不匹配,你需要更新你的 CocoaPods
解决方法:终端输入命令 $ gem install cocoapods --pre

但是,运行需要权限:

image.png

这是因为要执行这些操作时必须有管理员的权限(比如更新软件),比如更新cocoapods时报错,只需要在命令前加上 sudo ,例如:sudo gem install cocoapods即可.sudo是获取管理员权限,现在按照步骤输入管理员密码即可.

image.png

OK,可以继续使用 CocoaPods 。

2. 新问题

问题继续,今天有遇到了上次的这个问题,但是通过上面的步骤还是不可以,遇到下面错误:

image.png

Could not find a valid gem 'cocoapods' (>= 0), here is why:
Unable to download data from https://gems.ruby-china.org/ - bad response Not Found 404 (https://gems.ruby-china.org/specs.4.8.gz)

很明显404找不到上面的网址,你复制到浏览器,它会提醒你改成了com结尾:

image.png

一、删除

sudo gem sources --remove https://gems.ruby-china.org/

sudo gem sources --remove 后为移除的镜像地址,先用 gem sources -l 查看一下电脑中使用的是哪个,然后再移除,如:

image.png

先查看再移除,http://ruby.taobao.org/ 这个已经是很老的了,这个电脑很久没更新了。

二、添加

sudo gem sources -a https://gems.ruby-china.com

三、检查

gem sources -l

如果是

*** CURRENT SOURCES ***
https://gems.ruby-china.com

代表成功,再执行

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

image.png

3. CocoaPods版本升级

有时更新代码,可能会出现,pods 版本过低的提示,如下:

image.png

这时候就需要更新 pod 版本啦

  1. 首先我们可以查看下当前的版本号命令如下:

pod --version

  1. 在升级之前查看当前安装的Ruby源地址:同上

gem source -l

  1. 移除旧的Ruby源,添加一个新的源

// 移除旧的源 命令: "gem sources --remove"
// 添加新的源 命令: "gem sources -a "

  1. 查看新的源是否添加成功,同2

  2. 开始安装,输入如下命令

sudo gem install cocoapods
如果报错使用:
sudo gem install -n /usr/local/bin cocoapods

但是有可能一直更新不了,还是老版本,如下:

image.png

一直是 1.5.3 的版本,

大胆的尝试了一下:

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

image.png

终于更新过来了!!!

这时候就可以正常的使用 pods 了

image.png

4. 安装了ruby 2.3.0之后cocoapods无法使用解决办法其实是更新 Xcode 的问题

今天使用 Cocoapods 突然报错了,无法使用,如下:

36B4EEF2-4B4F-4592-8A77-F1D58EA945E3.png

大眼一看,是命令行路径的问题 ,但是一时没想起来哪里的问题,在网上找了许多文章,各种尝试,都没能解决,还以为安装了ruby 2.3.4之后cocoapods就无法使用正常使用的问题,最后在曾经的小伙伴的帮助下解决了,重置一下 Xcode d的 设置 ,如下:

image.png

是因为前两天,Mac App Store 自动更新了 Xcode 10.1 重新安装导致 cocoapads 不能正常使用, 在 Xcode 的偏好设置里面:

image.png

我的是这个问题,这个地方更新 或 安装 Xcode 命令行Command Line Tools 的路径可能会出问题,其他导致的暂时就不知道了,用其他的办法解决。

5. 新问题:

今天更新安装 cocoapods 时,遇到了下面两个问题,导致无法使用:

  1. [!] Attempt to read non existent folder /Users/gantanger/Desktop/赶趟巴士1.5.6(SVN)/GantangBusNew/Pods/MBProgressHUD.
  2. [!] The GantangBus [Debug] target overrides the OTHER_LDFLAGS build setting defined in `Pods/Target Support Files/Pods-GantangBus/Pods-GantangBus.debug.xcconfig'. This can lead to problems with the CocoaPods installation

GantangBus [Debug]目标覆盖Pods / Target Support Files / Pods-GantangBus / Pods-GantangBus.debug.xcconfig'中定义的OTHER_LDFLAGS`构建设置。 这可能导致CocoaPods安装出现问题

如图:

image.png

解决方法:
第一个问题:
是因为路径中有中文,导致出错,重命名或新切换一个目录,所以 路径/ 文件夹 最后不要用中文。
第二个问题:
other linker flags 的问题, OTHER_LDFLAGS 先搜索一下,发现设置的是 -all_load ,清除。

6. pod install 安装报错

报错信息如下:

[!] Error installing MBProgressHUD
[!] /usr/bin/git clone https://github.com/matej/MBProgressHUD.git /var/folders/3v/1h13clnn58v_tt_nmw0ybk6m0000gn/T/d20200211-26046-1kgv06r --template= --single-branch --depth 1 --branch 1.1.0

Cloning into '/var/folders/3v/1h13clnn58v_tt_nmw0ybk6m0000gn/T/d20200211-26046-1kgv06r'...
error: RPC failed; curl 56 LibreSSL SSL_read: SSL_ERROR_SYSCALL, errno 54
fatal: the remote end hung up unexpectedly
image.png

总之是一直安装失败报错,pod 本地库也更新不了,
pod repo update

image.png

但是不停地尝试,把不能安装成功的库先注释掉,就成功了,说明CocoaPods环境是没有什么问题,网上有很多说的,重新安装pods、VPN影响什么的都试过了,无济于事,就用这样的笨办法试的。

image.png

然后再把安装失败的库,一个一个放开重新安装

image.png

破费周折,很少麻烦,没办法,到现在一直不明白到底是哪里出了问题,只能这样麻烦了。

2020-5-20 浪漫的情人节

另续 ——
鉴于上面的问题 ,总是安装失败,跟网络可能有关系 ,但是关系可能不大,以前更新安装很快的,现在可能是源安装更新比较麻烦,今天发现了,一个方法, 就是在 Podfile文件中小小的改动一下,可能就解决问题了,刚测试了没问题,很快,就是在开头加上:

source 'https://github.com/CocoaPods/Specs.git'

如果不加的话,可能很难安装成功,如下

image.png

这些库下载到本地很费劲,什么连接错误的,这样就不用下载到本地了,直接从远程仓库拉取,这样就很容易成功了:

image.png

source 'https://github.com/CocoaPods/Specs.git'这个之前其实加过很多次了,感觉没用,加在和三方库一起了,更新也很不成功,可能是加的地方不对。

2020-5-21,刚看到郑恺和苗苗下午13:14掐点官宣结婚了,又吃了一大把X粮吃的饱饱的。

刚更新了一下文章,没想到立马就被打脸了,piapia的。其实上面的source无所谓,放哪里都一样。今天又遇到了安装不成功的问题,折磨了快一天,本来只是一个库安装不了最新版的,结果全删了,很多库都更新不了了,得不偿失,返过来还是用的老方法。

image.png

本来只是这一个问题 ,结果项目完全移除了 CocoaPods依赖。

image.png

全部移除 CocoaPods 后只能重新再安装了,但是没有那么顺利了,很多库都安装不了了,


image.png

没办法,只能照老办法一个一个注释安装了。

image.png

最后又回到了原点:

image.png

7. [!] Error installing "xxx第三方库名称"

参考这篇文章解决方法:
https://www.jianshu.com/p/c2e85f224c65

另附Mac os 11之后系统安装cocoapods

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

cocoapods master移除:
$ sudo rm -fr ~/.cocoapods/repos/master

替代pod setup:

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

$ pod repo update
pod安装与否查询(1为安装成功,0为不成功)

$ pod repo list
清空全局缓存

sudo rm -fr ~/Library/Caches/CocoaPods/ sudo rm -fr ~/.cocoapods/repos/master/
$ sudo rm -fr Pods/

附:Podfile.lock 文件

最后一次更新Pods时,所有第三方框架的版本号
Pod常用指令区别:

$ pod install

如果Podfile.lock文件不存在,会根据Podfile文件安装第三方框架,并生成Podfile.lock文件
如果Podfile.lock文件存在,会根据Podfile.lock文件的版本号来安装第三方框架

$ pod update

根据Podfile文件安装第三方框架
将所有第三方框架更新到最新版本,并且创建一个Podfile.lock文件覆盖掉原文件

$ pod install/update --no-repo-update

安装框架前不会执行pod repo update,意味着不去检查服务器版本,直接使用本地缓存的框架版本

pod install过程简述:

*   在通过`pod install`或`pod update`指令安装框架前,都会先执行`pod repo update`指令,将服务器最新的框架下载到本地,项目中是否安装最新版本的框架,取决于安装方式:`pod install(指定版本)`和`pod update(最新版本)`
*   在第一次执行`pod install`指令时,`podfile.lock`还不存在,会根据`podfile`中的说明来集成框架
    如果指定框架版本号,安装指定版本,如果未指定,安装最新的,并自动生成`podfile.lock`文件
*   当以后再次执行`pod install`指令时,会根据`podfile.lock`中记录的框架版本号来安装框架.
    即便服务器中有最新的版本,通过`pod install`指令也不会安装最新的第三方框架,只会根据`podfile.lock`中记录的版本来安装*   ##### 项目中的运用

*   多人协同开发中,在设置忽略文件时,我们通常不会将`pods`文件夹每次都推送至服务器,这样会造成服务器资源浪费,通常会将`Pods`文件夹忽略掉 [忽略Pods文件夹](https://www.jianshu.com/p/7e92f409326c)

*   当需要从另外一台电脑上`clone`项目协作开发时,根据`podfile.lock`指定的框架版本号,通过`pod install`指令安装框架,这样可以保证每个人项目中的框架版本都是一致,不会引起冲突

注意:从CocoaPods 1.0开始,默认情况下pod install不会发生pod repo update

pods 指定版本号

如:

platform:ios,'8.0'
target 'GantangBus' do
pod 'Socket.IO-Client-Swift','~>11.1.2'
pod 'SDWebImage','~>4.0.0'
pod 'MBProgressHUD','~>1.1.0'

use_frameworks!

end

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,126评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,254评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,445评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,185评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,178评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,970评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,276评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,927评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,400评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,883评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,997评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,646评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,213评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,204评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,423评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,423评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,722评论 2 345

推荐阅读更多精彩内容

  • 项目组件化、平台化是技术公司的共同目标,越来越多的技术公司推崇使用pod管理第三方库以及私有组件,一方面使项目架构...
    swu_luo阅读 21,466评论 0 39
  • 目录 CocoaPods简介 常用命令一览 一、CocoaPods 的安装 1、更换 Gem 的源 2、更新升级 ...
    笑啥风云阅读 670评论 0 1
  • CocoaPods 是什么? CocoaPods 是一个负责管理 iOS 项目中第三方开源库的工具。CocoaPo...
    朝洋阅读 25,632评论 3 51
  • 想找个书法家写幅字挂在客厅,字的内容是:老婆过得好,自己才过得好。
    蟹总有钳阅读 182评论 2 1
  • 叶子: 你好吗?我很好。 原谅我很冒昧地给你写这封信。原谅我搅扰了你的世界。我猜,你可能感觉这封信有点莫名...
    牧畅玄阅读 336评论 0 0