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

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

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

Cocoa Pods 问题小结,不定时更新_第1张图片
image.png
Cocoa Pods 问题小结,不定时更新_第2张图片
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是获取管理员权限,现在按照步骤输入管理员密码即可.

Cocoa Pods 问题小结,不定时更新_第3张图片
image.png

OK,可以继续使用 CocoaPods 。

2. 新问题

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

Cocoa Pods 问题小结,不定时更新_第4张图片
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结尾:

Cocoa Pods 问题小结,不定时更新_第5张图片
image.png

一、删除

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

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

Cocoa Pods 问题小结,不定时更新_第6张图片
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

Cocoa Pods 问题小结,不定时更新_第7张图片
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

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

Cocoa Pods 问题小结,不定时更新_第8张图片
image.png

一直是 1.5.3 的版本,

大胆的尝试了一下:

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

Cocoa Pods 问题小结,不定时更新_第9张图片
image.png

终于更新过来了!!!

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

Cocoa Pods 问题小结,不定时更新_第10张图片
image.png

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

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

Cocoa Pods 问题小结,不定时更新_第11张图片
36B4EEF2-4B4F-4592-8A77-F1D58EA945E3.png

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

image.png

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

Cocoa Pods 问题小结,不定时更新_第12张图片
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安装出现问题

如图:

Cocoa Pods 问题小结,不定时更新_第13张图片
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
Cocoa Pods 问题小结,不定时更新_第14张图片
image.png

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

Cocoa Pods 问题小结,不定时更新_第15张图片
image.png

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

Cocoa Pods 问题小结,不定时更新_第16张图片
image.png

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

Cocoa Pods 问题小结,不定时更新_第17张图片
image.png

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

2020-5-20 浪漫的情人节

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

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

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

Cocoa Pods 问题小结,不定时更新_第18张图片
image.png

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

Cocoa Pods 问题小结,不定时更新_第19张图片
image.png

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

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

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

Cocoa Pods 问题小结,不定时更新_第20张图片
image.png

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

Cocoa Pods 问题小结,不定时更新_第21张图片
image.png

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


Cocoa Pods 问题小结,不定时更新_第22张图片
image.png

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

Cocoa Pods 问题小结,不定时更新_第23张图片
image.png

最后又回到了原点:

Cocoa Pods 问题小结,不定时更新_第24张图片
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 ~/.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

你可能感兴趣的:(Cocoa Pods 问题小结,不定时更新)