pod執行指定緩存目錄,多版本pod執行緩存目錄被清問題


背景:

我的mac環境下有多版本pod,存在執行不同版本pod的情況。安裝pod依賴時(pod install),偶現下面報錯:
Pre-downloading: `AFNetworking` from `git@gitlab.zhuanspirit.com:zz-ios/AFNetworking.git`, tag `0.0.3`
[!] Failed to download 'AFNetworking': Directory not empty @ dir_s_rmdir - /Users/zzqadervice/Library/Caches/CocoaPods/Pods
 
后來排查發現是打包過程中,放pod緩存的目錄下的內容被清空了

pod緩存目錄被清空原因:

1、人為清理
pod cache clean —all
-all:清理所有緩存
指定庫名字:指清理對應庫緩存(/Library/Caches/CocoaPods/Pods/Specs/Release/庫名字)
 
2、pod版本與上一次執行不一致時,會清空pod緩存目錄
當再執行pod install/update命令時,若當前pod的版本與~/.cocoapods/version中版本不一致,會先進行pod緩存文件清理再進行依賴下載
*執行pod生成緩存時,會在~/.cocoapods/version文件內記錄pod版本號

解決方法:

針對不同pod版本,緩存存放在不同目錄下,避免pod多版本執行時緩存被清除的問題
指定當前緩存目錄的方式CP_CACHE_DIR="~/.cocoapods/$PODVERSION"
 
執行前,先指定pod緩存目錄,然后去執行pod命令
例如:
PODVERSION='1.10.0'
export CP_CACHE_DIR="~/.cocoapods/$PODVERSION"
pod _${PODVERSION}_ install
 
同事看源碼分析的全過程:https://mp.weixin.qq.com/s/dfyJxfah2VY5bQyoQQ8L3g


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM