1. RuntimeError - [Xcodeproj] Unknown object version. 問(wèn)題解決
今天使用 Pods 時(shí)突然報(bào)錯(cuò)了,如下:


還有問(wèn)題解決方案:
原因:這是因?yàn)槟愕?Xcode 版本和 CocoaPods 的版本不匹配,你需要更新你的 CocoaPods
解決方法:終端輸入命令 $ gem install cocoapods --pre
但是,運(yùn)行需要權(quán)限:

這是因?yàn)橐獔?zhí)行這些操作時(shí)必須有管理員的權(quán)限(比如更新軟件),比如更新cocoapods時(shí)報(bào)錯(cuò),只需要在命令前加上 sudo ,例如:sudo gem install cocoapods即可.sudo是獲取管理員權(quán)限,現(xiàn)在按照步驟輸入管理員密碼即可.

OK,可以繼續(xù)使用 CocoaPods 。
2. 新問(wèn)題
問(wèn)題繼續(xù),今天有遇到了上次的這個(gè)問(wèn)題,但是通過(guò)上面的步驟還是不可以,遇到下面錯(cuò)誤:

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找不到上面的網(wǎng)址,你復(fù)制到瀏覽器,它會(huì)提醒你改成了com結(jié)尾:

一、刪除
sudo gem sources --remove https://gems.ruby-china.org/
sudo gem sources --remove 后為移除的鏡像地址,先用 gem sources -l 查看一下電腦中使用的是哪個(gè),然后再移除,如:

先查看再移除,http://ruby.taobao.org/ 這個(gè)已經(jīng)是很老的了,這個(gè)電腦很久沒更新了。
二、添加
sudo gem sources -a https://gems.ruby-china.com
三、檢查
gem sources -l
如果是
*** CURRENT SOURCES ***
https://gems.ruby-china.com
代表成功,再執(zhí)行
sudo gem install -n /usr/local/bin cocoapods

3. CocoaPods版本升級(jí)
有時(shí)更新代碼,可能會(huì)出現(xiàn),pods 版本過(guò)低的提示,如下:

這時(shí)候就需要更新 pod 版本啦
- 首先我們可以查看下當(dāng)前的版本號(hào)命令如下:
pod --version
- 在升級(jí)之前查看當(dāng)前安裝的Ruby源地址:同上
gem source -l
- 移除舊的Ruby源,添加一個(gè)新的源
// 移除舊的源 命令: "gem sources --remove"
// 添加新的源 命令: "gem sources -a "
查看新的源是否添加成功,同2
開始安裝,輸入如下命令
sudo gem install cocoapods
如果報(bào)錯(cuò)使用:
sudo gem install -n /usr/local/bin cocoapods
但是有可能一直更新不了,還是老版本,如下:

一直是 1.5.3 的版本,
大膽的嘗試了一下:
sudo gem install cocoapods --pre -n /usr/local/bin cocoapods

終于更新過(guò)來(lái)了?。?!
這時(shí)候就可以正常的使用 pods 了

4. 安裝了ruby 2.3.0之后cocoapods無(wú)法使用解決辦法其實(shí)是更新 Xcode 的問(wèn)題
今天使用 Cocoapods 突然報(bào)錯(cuò)了,無(wú)法使用,如下:

大眼一看,是命令行路徑的問(wèn)題 ,但是一時(shí)沒想起來(lái)哪里的問(wèn)題,在網(wǎng)上找了許多文章,各種嘗試,都沒能解決,還以為安裝了ruby 2.3.4之后cocoapods就無(wú)法使用正常使用的問(wèn)題,最后在曾經(jīng)的小伙伴的幫助下解決了,重置一下 Xcode d的 設(shè)置 ,如下:

是因?yàn)榍皟商?,Mac App Store 自動(dòng)更新了 Xcode 10.1 重新安裝導(dǎo)致 cocoapads 不能正常使用, 在 Xcode 的偏好設(shè)置里面:

我的是這個(gè)問(wèn)題,這個(gè)地方更新 或 安裝 Xcode 命令行Command Line Tools 的路徑可能會(huì)出問(wèn)題,其他導(dǎo)致的暫時(shí)就不知道了,用其他的辦法解決。
5. 新問(wèn)題:
今天更新安裝 cocoapods 時(shí),遇到了下面兩個(gè)問(wèn)題,導(dǎo)致無(wú)法使用:
- [!] Attempt to read non existent folder
/Users/gantanger/Desktop/趕趟巴士1.5.6(SVN)/GantangBusNew/Pods/MBProgressHUD. - [!] The
GantangBus [Debug]target overrides theOTHER_LDFLAGSbuild setting defined in `Pods/Target Support Files/Pods-GantangBus/Pods-GantangBus.debug.xcconfig'. This can lead to problems with the CocoaPods installation
GantangBus [Debug]目標(biāo)覆蓋Pods / Target Support Files / Pods-GantangBus / Pods-GantangBus.debug.xcconfig'中定義的OTHER_LDFLAGS`構(gòu)建設(shè)置。 這可能導(dǎo)致CocoaPods安裝出現(xiàn)問(wèn)題
如圖:

解決方法:
第一個(gè)問(wèn)題:
是因?yàn)槁窂街杏兄形模瑢?dǎo)致出錯(cuò),重命名或新切換一個(gè)目錄,所以 路徑/ 文件夾 最后不要用中文。
第二個(gè)問(wèn)題:
other linker flags 的問(wèn)題, OTHER_LDFLAGS 先搜索一下,發(fā)現(xiàn)設(shè)置的是 -all_load ,清除。
6. pod install 安裝報(bào)錯(cuò)
報(bào)錯(cuò)信息如下:
[!] 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

總之是一直安裝失敗報(bào)錯(cuò),pod 本地庫(kù)也更新不了,
pod repo update

但是不停地嘗試,把不能安裝成功的庫(kù)先注釋掉,就成功了,說(shuō)明CocoaPods環(huán)境是沒有什么問(wèn)題,網(wǎng)上有很多說(shuō)的,重新安裝pods、VPN影響什么的都試過(guò)了,無(wú)濟(jì)于事,就用這樣的笨辦法試的。

然后再把安裝失敗的庫(kù),一個(gè)一個(gè)放開重新安裝

破費(fèi)周折,很少麻煩,沒辦法,到現(xiàn)在一直不明白到底是哪里出了問(wèn)題,只能這樣麻煩了。
2020-5-20 浪漫的情人節(jié)
另續(xù) ——
鑒于上面的問(wèn)題 ,總是安裝失敗,跟網(wǎng)絡(luò)可能有關(guān)系 ,但是關(guān)系可能不大,以前更新安裝很快的,現(xiàn)在可能是源安裝更新比較麻煩,今天發(fā)現(xiàn)了,一個(gè)方法, 就是在 Podfile文件中小小的改動(dòng)一下,可能就解決問(wèn)題了,剛測(cè)試了沒問(wèn)題,很快,就是在開頭加上:
如果不加的話,可能很難安裝成功,如下

這些庫(kù)下載到本地很費(fèi)勁,什么連接錯(cuò)誤的,這樣就不用下載到本地了,直接從遠(yuǎn)程倉(cāng)庫(kù)拉取,這樣就很容易成功了:

source 'https://github.com/CocoaPods/Specs.git'這個(gè)之前其實(shí)加過(guò)很多次了,感覺沒用,加在和三方庫(kù)一起了,更新也很不成功,可能是加的地方不對(duì)。
2020-5-21,剛看到鄭愷和苗苗下午13:14掐點(diǎn)官宣結(jié)婚了,又吃了一大把X糧吃的飽飽的。
剛更新了一下文章,沒想到立馬就被打臉了,piapia的。其實(shí)上面的source無(wú)所謂,放哪里都一樣。今天又遇到了安裝不成功的問(wèn)題,折磨了快一天,本來(lái)只是一個(gè)庫(kù)安裝不了最新版的,結(jié)果全刪了,很多庫(kù)都更新不了了,得不償失,返過(guò)來(lái)還是用的老方法。

本來(lái)只是這一個(gè)問(wèn)題 ,結(jié)果項(xiàng)目完全移除了 CocoaPods依賴。

全部移除 CocoaPods 后只能重新再安裝了,但是沒有那么順利了,很多庫(kù)都安裝不了了,

沒辦法,只能照老辦法一個(gè)一個(gè)注釋安裝了。

最后又回到了原點(diǎn):

7. [!] Error installing "xxx第三方庫(kù)名稱"
參考這篇文章解決方法:
http://www.itdecent.cn/p/c2e85f224c65
另附Mac os 11之后系統(tǒng)安裝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時(shí),所有第三方框架的版本號(hào)
Pod常用指令區(qū)別:
$ pod install
如果Podfile.lock文件不存在,會(huì)根據(jù)Podfile文件安裝第三方框架,并生成Podfile.lock文件
如果Podfile.lock文件存在,會(huì)根據(jù)Podfile.lock文件的版本號(hào)來(lái)安裝第三方框架
$ pod update
根據(jù)Podfile文件安裝第三方框架
將所有第三方框架更新到最新版本,并且創(chuàng)建一個(gè)Podfile.lock文件覆蓋掉原文件
$ pod install/update --no-repo-update
安裝框架前不會(huì)執(zhí)行pod repo update,意味著不去檢查服務(wù)器版本,直接使用本地緩存的框架版本
pod install過(guò)程簡(jiǎn)述:
* 在通過(guò)`pod install`或`pod update`指令安裝框架前,都會(huì)先執(zhí)行`pod repo update`指令,將服務(wù)器最新的框架下載到本地,項(xiàng)目中是否安裝最新版本的框架,取決于安裝方式:`pod install(指定版本)`和`pod update(最新版本)`
* 在第一次執(zhí)行`pod install`指令時(shí),`podfile.lock`還不存在,會(huì)根據(jù)`podfile`中的說(shuō)明來(lái)集成框架
如果指定框架版本號(hào),安裝指定版本,如果未指定,安裝最新的,并自動(dòng)生成`podfile.lock`文件
* 當(dāng)以后再次執(zhí)行`pod install`指令時(shí),會(huì)根據(jù)`podfile.lock`中記錄的框架版本號(hào)來(lái)安裝框架.
即便服務(wù)器中有最新的版本,通過(guò)`pod install`指令也不會(huì)安裝最新的第三方框架,只會(huì)根據(jù)`podfile.lock`中記錄的版本來(lái)安裝* ##### 項(xiàng)目中的運(yùn)用
* 多人協(xié)同開發(fā)中,在設(shè)置忽略文件時(shí),我們通常不會(huì)將`pods`文件夾每次都推送至服務(wù)器,這樣會(huì)造成服務(wù)器資源浪費(fèi),通常會(huì)將`Pods`文件夾忽略掉 [忽略Pods文件夾](http://www.itdecent.cn/p/7e92f409326c)
* 當(dāng)需要從另外一臺(tái)電腦上`clone`項(xiàng)目協(xié)作開發(fā)時(shí),根據(jù)`podfile.lock`指定的框架版本號(hào),通過(guò)`pod install`指令安裝框架,這樣可以保證每個(gè)人項(xiàng)目中的框架版本都是一致,不會(huì)引起沖突
注意:從CocoaPods 1.0開始,默認(rèn)情況下pod install不會(huì)發(fā)生pod repo update。
pods 指定版本號(hào)
如:
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