如何从本地 cocoapods 缓存中清除或清除特定 pod

问题描述 投票:0回答:2

如何从 cocoapods 缓存中删除或清除特定 pod?

尝试直接删除整个缓存,需要很多时间才能恢复所有 pod。如何从缓存中查看和删除特定的 pod?

以下作品(较长时间提交):

# delete all cached pods
`rm -rf "${HOME}/Library/Caches/CocoaPods"`  

# delete local Pods/*
rm -rf "`pwd`/Pods/"

# pod update to fetch latest. After entire cache deletion, it takes lot longer to fetch and rebuild pod cache from scratch. 
`pod update` 

只需从 podfile 中注释掉,然后

pod install
再次从缓存中获取旧版本。

当 Pod 很大时,Pod 缓存中存在多个相同 Pod 的实例可能会很麻烦,在使用

cocoapods1.3.1
Xcode9
的项目中,当前使用的其中一个 Pod 的大小 >1.5 GB。

ios xcode cocoapods
2个回答
344
投票

清除特定 Pod

pod cache clean --all # will clean all pods
pod cache clean 'FortifySec' --all # will remove all installed 'FortifySec' pods 

pod cache clean 'FortifySec'
的示例输出,对于不使用语义版本控制的 Pod,这可能会导致缓存中存在相同 pod 的许多副本:

pod cache clean 'FortifySec'
1: FortifySec v2.2 (External)
2: FortifySec v2.2 (External)
...
...
18: FortifySec v2.2 (External)
19: FortifySec v2.2 (External)

Which pod cache do you want to remove?

完全清理(pod 重置)

rm -rf ~/Library/Caches/CocoaPods
rm -rf Pods
rm Podfile.lock
rm -rf ~/Library/Developer/Xcode/DerivedData/*
pod deintegrate
pod setup
pod install

清洁前
pod cache list
的示例

pod cache list

FortifySec:
- Version: 2.2.1
Type:    External
Spec:    /Users/j.d/Library/Caches/CocoaPods/Pods/Specs/External/FortifySec/ui99sd....podspec.json
Pod:     /Users/j.d/Library/Caches/CocoaPods/Pods/External/FortifySec/yi23sd...-sdjc3
- Version: 2.2.1
Type:    External
Spec:    /Users/j.d/Library/Caches/CocoaPods/Pods/Specs/External/FortifySec/dsfs-df23
Pod:     /Users/j.d/Library/Caches/CocoaPods/Pods/External/FortifySec/dfs0d-2dfs
- Version: 2.2
Type:    External
Spec:    /Users/j.d/Library/Caches/CocoaPods/Pods/Specs/External/FortifySec/u78hyt....podspec.json
Pod:     /Users/j.d/Library/Caches/CocoaPods/Pods/External/FortifySec/e000sd
- Version: 2.2.2
Type:    External
Spec:    /Users/j.d/Library/Caches/CocoaPods/Pods/Specs/External/FortifySec/s2d-df.podspec.json
Pod:     /Users/j.d/Library/Caches/CocoaPods/Pods/External/FortifySec/ds34sd....
- Version: 2.2.1
Type:    External
Spec:    /Users/j.d/Library/Caches/CocoaPods/Pods/Specs/External/FortifySec/sdfsdfdsf....podspec.json
Pod:     /Users/j.d/Library/Caches/CocoaPods/Pods/External/FortifySec/edfs5d7...
AFNetworking:
- Version: 2.5.3
Type:    Release
Spec:    /Users/j.d/Library/Caches/CocoaPods/Pods/Specs/Release/AFNetworking/2.6.podspec.json
Pod:     /Users/j.d/Library/Caches/CocoaPods/Pods/Release/AFNetworking/2.6.3-4e7e2

注意

- Version: 2.2.1
的多个 Pod 缓存。这样做可以消除 Pod 缓存使用的不必要的磁盘空间,这是一个好主意。


1
投票

带有解释的安全步骤,不包括 Pod 分解,并且对 React Native 友好。

  1. 删除衍生数据 - 删除包含项目缓存信息的数据 示例操作方法:https://www.youtube.com/watch?v=f8bTvx0Aoyo

  2. 从 iOS 文件夹中删除 .xcworkspace 文件 - 这是运行 pod install 时创建的 Xcode 项目文件,我们希望在步骤 4 中重新创建它。该项目文件使用 pods,并具有白色图标而不是蓝色图标没有 pod 的基础项目。

  3. 删除 Podfile.lock - 删除旧的依赖项信息,以便我们可以在下一步中重新创建它们。

  4. 在 iOS 文件夹中执行 pod-install 或在 root 中执行 npx pod-install(React Native) - 这里我们再次下载 pod 依赖项,并且仅下载并集成最新 package-lock 中使用的 pod 文件因此从 package.json 中删除的包 pod 消失了。重新生成了 .xcworkspace。

© www.soinside.com 2019 - 2024. All rights reserved.