1. pod search xxx提示找不到
hechao@hechaodeMacBook-Pro CassECommerce % pod search HCClangTrace
Setup completed
Creating search index for spec repo 'CassPrivatePods'.. Done!
[!] Unable to find a pod with name, author, summary, or description matching `HCClangTrace`
[!] Skipping `yoga` because the podspec contains errors.
hechao@hechaodeMacBook-Pro CassECommerce % pod search HCClangTrace -source https://github.com/CocoaPods/Specs.git
Setup completed
[!] Unable to find a pod with name, author, summary, or description matching `HCClangTrace \-source https://github\.com/CocoaPods/Specs\.git`
我這里是自己創(chuàng)建的pod庫(kù)推送到了官方的Specs倉(cāng)庫(kù),結(jié)果本地search搜多不到
-
確定是否正確的推送到了遠(yuǎn)端
直接去Specs里搜索你的庫(kù)名稱
圖片.png
- 確定已經(jīng)推送到遠(yuǎn)端了,那么可能就是本地的search緩存比較舊,在終端依次執(zhí)行:
cd ~/Library/Caches/CocoaPods
rm search_index.json
pod search xxxx
-
如果還是提示找不到
去本機(jī)的Specs目錄下看看
圖片.png
發(fā)現(xiàn)官方遠(yuǎn)端的Specs/e/3/d/目錄下有我們的庫(kù),但是本地沒(méi)有;這時(shí)候則需要更新Specs了,執(zhí)行:
pod repo update --verbose
執(zhí)行成功后發(fā)現(xiàn)本地已經(jīng)有我們的庫(kù)了
圖片.png
這個(gè)時(shí)候再執(zhí)行rm search_index.json此時(shí)再search就可以啦

2.pod install 失敗
Couldn't connect to server, retries: 1
[!] CDN: trunk Repo update failed -
CDN: trunk URL couldn't be downloaded:
終端執(zhí)行pod repo查看本地的repo列表發(fā)現(xiàn)有個(gè)CDN的名叫trunk
1.pod repo remove trunk刪除CDN源
2.添加 source 'https://github.com/CocoaPods/Specs.git' 到你的工程的Podfile文件頭部
3.安裝app到真機(jī)調(diào)試提示App Install Failed
There was an error communicating with your device
解決方法:
-
Unpair Device,在Xcode--Window--Devices and Simulators菜單
圖片.png - 清理工程 comond + k
- 斷開(kāi)手機(jī)跟USB線的連接,重啟手機(jī)
- 重啟Xcode
然后在重新run,應(yīng)該就解決了
4.pod庫(kù)本地校驗(yàn)沒(méi)問(wèn)題推到私有倉(cāng)庫(kù)報(bào)錯(cuò)
本地執(zhí)行pod lib lint MyPrivatePods xxx.podspec --allow-warnings --verbose顯示驗(yàn)證通過(guò)
但是在推送到遠(yuǎn)端的時(shí)候就報(bào)錯(cuò),發(fā)現(xiàn)代碼使用的是舊的代碼[已經(jīng)修復(fù)的報(bào)錯(cuò)結(jié)果還是報(bào)錯(cuò)],沒(méi)有獲取到修改之后的最新的代碼;這個(gè)時(shí)候猜測(cè)是緩存的問(wèn)題導(dǎo)致的;也可以通過(guò)日志看到確實(shí)是從本地的緩存去拷貝的代碼
> Copying ECFileLog from `/Users/hechao/Library/Caches/CocoaPods/Pods/External/ECFileLog/1fd1b83811b92e5d2e3e45cdc7ee34b1-af8a5` to
`../../../../../private/var/folders/r0/4tb84bbj15j3kbzrnk8hqdwm0000gn/T/CocoaPods-Lint-20200513-61623-tmljx7-ECFileLog/Pods/ECFileLog`
-
進(jìn)入到cocoapod的本地代碼緩存
cd ~/Library/Caches/CocoaPods/Pods/自己的私有倉(cāng)庫(kù)的代碼則在該目錄下的External/文件夾
圖片.png 找到我們需要推送的庫(kù),刪除掉緩存
再次執(zhí)行
pod repo push MyPrivatePods xxx.podspec --allow-warnings --verbose看日志發(fā)現(xiàn)是重新去下載代碼了,至此問(wèn)題就解決了
5.The 'Pods-App' target has transitive dependencies that include statically linked binaries:
pod的demo能正常編譯鏈接,但是本地lint的時(shí)候就報(bào)錯(cuò)了,提示如標(biāo)題,pod庫(kù)中依賴了靜態(tài)庫(kù)
- 加上
--use-libraries命令選項(xiàng)再次嘗試校驗(yàn)通過(guò)了
查看lint幫助文檔可以看到該選項(xiàng)的作用
--use-libraries Lint uses static libraries to install the spec
6.使用Transporter上傳ipa包的時(shí)候卡在鑒權(quán)階段,沒(méi)有上傳進(jìn)度
這個(gè)是由于Transporter首次上傳的時(shí)候需要下載大概一百多M的文件到~/Library/Caches/com.apple.amp.itmstransporter/所以很慢;這個(gè)時(shí)候可以去網(wǎng)上下載下來(lái)這個(gè)包,然后替換到該目錄下
具體可參照:http://www.itdecent.cn/p/dc92dc00db48
7.在pod install的時(shí)候卡在了Resolving dependencies of Podfile
一卡卡半天,加了--verbose也沒(méi)有輸出日志;沒(méi)有去閱讀cocoapods的源碼了解Resolving dependencies of Podfile這個(gè)過(guò)程的實(shí)現(xiàn)。偶然間我將SDWebImage/WebP的集成注釋掉發(fā)現(xiàn)就可以了
后來(lái)再次去集成SDWebImage/WebP的時(shí)候發(fā)現(xiàn)還是異常了:
Resolving dependencies of `Podfile`
[!] CocoaPods could not find compatible versions for pod "SDWebImage/Core":
In snapshot (Podfile.lock):
SDWebImage/Core (= 5.8.0)
In Podfile:
SDWebImage was resolved to 5.8.0, which depends on
SDWebImage/Core (= 5.8.0)
SDWebImage/WebP was resolved to 3.4, which depends on
SDWebImage/Core (= 3.4)
果然是因?yàn)榘姹镜膯?wèn)題,導(dǎo)致cocoapod在解析依賴的時(shí)候發(fā)現(xiàn)不匹配導(dǎo)致異常了;去SDWebImage的github上發(fā)現(xiàn)從5.0版本開(kāi)始已經(jīng)移除掉WebP的支持,改為使用插件的方式去支持了SDWebImageWebPCoder
所以這里有2種解決方案:
1. 使用5.0以下版本的SDWebImage
pod 'SDWebImage', '~> 4.0.0'
pod 'SDWebImage/WebP'
2. 使用5.0及以上的版本,但是不通過(guò)SDWebImage/WebP的方式集成WebP,而是使用SDWebImageWebPCoder的方式
pod 'SDWebImage', '~> 5.0.0'
pod 'SDWebImageWebPCoder'
8.Xcode如何修改copyright的組織信息
有時(shí)候我們寫(xiě)錯(cuò)了版權(quán)的組織,或者想修改源代碼的版權(quán)的組織信息,搜索Xcode的Build Setteing也沒(méi)發(fā)現(xiàn)提供這個(gè)配置去修改
針對(duì)已有的源代碼文件
搜索組織名,然后全局替換成要修改的組織名

修改全局的配置
上面進(jìn)行替換是針對(duì)已有的文件的操作,那么新建的文件如果不修改配置的話,那就還是錯(cuò)的。此時(shí)我們需要將我們的工程文件xxx.xcodeproj -- 顯示包內(nèi)容 -- 以文本的方式打開(kāi)project.pbxproj文件,然后搜索舊的組織名或者直接搜索ORGANIZATIONNAME就可以找到對(duì)應(yīng)的配置了;然后修改這個(gè)配置的值保存即可

9. pod install 某個(gè)庫(kù)嘗試多次無(wú)果
有時(shí)候install多次,要么就是卡半天失??;要么就是被墻拉不下來(lái)(比如libwebp庫(kù))
針對(duì)需要翻墻的庫(kù)
- 搞個(gè)梯子
- 找群友或同事要庫(kù)的包文件以及spec配置文件
源碼的目錄
~/Library/Caches/CocoaPods/Pods/Release
spec配置文件目錄~/Library/Caches/CocoaPods/Pods/Specs/Release
默認(rèn)情況下,發(fā)布在cocoapods官方的源都是緩存在Release目錄下,如果沒(méi)有還可以去External目錄去找找
拿到源碼包以及spec配置包之后,放到對(duì)應(yīng)的位置就好了


針對(duì)多次拉取代碼都失敗的
- 切換4G切換Wifi試試
- 上面的方法屢試不爽,找別人拿到壓縮包放到對(duì)應(yīng)位置即可




