iosxcodecocoapods

How to clear or clean specific pod from the local cocoapods cache


How to delete or clear a specific pod from cocoapods cache?

Tried deleting the entire cache directly, it takes lot of time to get back all pods. How to view and remove specific pod from cache?

Following works (longer time commit):

# 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` 

Just commenting out from podfile, and pod install again fetches old version from cache.

Having many instances of same pod in the pod cache can be troublesome when the pod is large, one of the pod currently in use has size of >1.5 GB in a project that is using cocoapods1.3.1 with Xcode9.


Solution

  • Clearing a specific pod

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

    Sample output of pod cache clean 'FortifySec', for pods not using semantic versioning, this could result in many copies of same pod in cache:

    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?
    

    Complete cleanup (pod reset)

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

    Example of pod cache list prior to clean

    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
    

    Notice the multiple pod cache for - Version: 2.2.1. It's a good idea to do so to get rid of unnecessary disk space used by pod cache.