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庫推送到了官方的Specs倉庫袍暴,結(jié)果本地search搜多不到
-
確定是否正確的推送到了遠(yuǎn)端
直接去Specs里搜索你的庫名稱
圖片.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/目錄下有我們的庫,但是本地沒有风响;這時(shí)候則需要更新Specs了让簿,執(zhí)行:
pod repo update --verbose
執(zhí)行成功后發(fā)現(xiàn)本地已經(jīng)有我們的庫了
圖片.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
- 斷開手機(jī)跟USB線的連接舒萎,重啟手機(jī)
- 重啟Xcode
然后在重新run曹洽,應(yīng)該就解決了
4.pod庫本地校驗(yàn)沒問題推到私有倉庫報(bào)錯(cuò)
本地執(zhí)行pod lib lint MyPrivatePods xxx.podspec --allow-warnings --verbose
顯示驗(yàn)證通過
但是在推送到遠(yuǎn)端的時(shí)候就報(bào)錯(cuò)鳍置,發(fā)現(xiàn)代碼使用的是舊的代碼[已經(jīng)修復(fù)的報(bào)錯(cuò)結(jié)果還是報(bào)錯(cuò)],沒有獲取到修改之后的最新的代碼衣洁;這個(gè)時(shí)候猜測是緩存的問題導(dǎo)致的;也可以通過日志看到確實(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/
自己的私有倉庫的代碼則在該目錄下的External/文件夾
圖片.png 找到我們需要推送的庫抖仅,刪除掉緩存
再次執(zhí)行
pod repo push MyPrivatePods xxx.podspec --allow-warnings --verbose
看日志發(fā)現(xiàn)是重新去下載代碼了坊夫,至此問題就解決了
5.The 'Pods-App' target has transitive dependencies that include statically linked binaries:
pod的demo能正常編譯鏈接,但是本地lint的時(shí)候就報(bào)錯(cuò)了撤卢,提示如標(biāo)題环凿,pod庫中依賴了靜態(tài)庫
- 加上
--use-libraries
命令選項(xiàng)再次嘗試校驗(yàn)通過了
查看lint幫助文檔可以看到該選項(xiàng)的作用
--use-libraries Lint uses static libraries to install the spec
6.使用Transporter上傳ipa包的時(shí)候卡在鑒權(quán)階段,沒有上傳進(jìn)度
這個(gè)是由于Transporter首次上傳的時(shí)候需要下載大概一百多M的文件到~/Library/Caches/com.apple.amp.itmstransporter/
所以很慢放吩;這個(gè)時(shí)候可以去網(wǎng)上下載下來這個(gè)包智听,然后替換到該目錄下
具體可參照:http://www.reibang.com/p/dc92dc00db48
7.在pod install的時(shí)候卡在了Resolving dependencies of Podfile
一卡卡半天,加了--verbose也沒有輸出日志渡紫;沒有去閱讀cocoapods的源碼了解Resolving dependencies of Podfile這個(gè)過程的實(shí)現(xiàn)到推。偶然間我將SDWebImage/WebP的集成注釋掉發(fā)現(xiàn)就可以了
后來再次去集成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)榘姹镜膯栴},導(dǎo)致cocoapod在解析依賴的時(shí)候發(fā)現(xiàn)不匹配導(dǎo)致異常了惕澎;去SDWebImage的github上發(fā)現(xiàn)從5.0版本開始已經(jīng)移除掉WebP的支持莉测,改為使用插件的方式去支持了SDWebImageWebPCoder
所以這里有2種解決方案:
1. 使用5.0以下版本的SDWebImage
pod 'SDWebImage', '~> 4.0.0'
pod 'SDWebImage/WebP'
2. 使用5.0及以上的版本,但是不通過SDWebImage/WebP的方式集成WebP唧喉,而是使用SDWebImageWebPCoder的方式
pod 'SDWebImage', '~> 5.0.0'
pod 'SDWebImageWebPCoder'
8.Xcode如何修改copyright的組織信息
有時(shí)候我們寫錯(cuò)了版權(quán)的組織捣卤,或者想修改源代碼的版權(quán)的組織信息忍抽,搜索Xcode的Build Setteing也沒發(fā)現(xiàn)提供這個(gè)配置去修改
針對已有的源代碼文件
搜索組織名,然后全局替換成要修改的組織名
修改全局的配置
上面進(jìn)行替換是針對已有的文件的操作董朝,那么新建的文件如果不修改配置的話鸠项,那就還是錯(cuò)的。此時(shí)我們需要將我們的工程文件xxx.xcodeproj -- 顯示包內(nèi)容 -- 以文本的方式打開project.pbxproj文件子姜,然后搜索舊的組織名或者直接搜索ORGANIZATIONNAME
就可以找到對應(yīng)的配置了祟绊;然后修改這個(gè)配置的值保存即可
9. pod install 某個(gè)庫嘗試多次無果
有時(shí)候install多次,要么就是卡半天失斚醒久免;要么就是被墻拉不下來(比如libwebp庫)
針對需要翻墻的庫
- 搞個(gè)梯子
- 找群友或同事要庫的包文件以及spec配置文件
源碼的目錄
~/Library/Caches/CocoaPods/Pods/Release
spec配置文件目錄~/Library/Caches/CocoaPods/Pods/Specs/Release
默認(rèn)情況下,發(fā)布在cocoapods官方的源都是緩存在Release目錄下扭弧,如果沒有還可以去External目錄去找找
拿到源碼包以及spec配置包之后阎姥,放到對應(yīng)的位置就好了
針對多次拉取代碼都失敗的
- 切換4G切換Wifi試試
- 上面的方法屢試不爽,找別人拿到壓縮包放到對應(yīng)位置即可