Is there a way to truly clear dep cache?

Fighting xcode's perception of what dependencies are at what version is a constant PITA. I just want to find whatever directory those dependencies are in and rm -rf. Can I do that and where do I do it?

Take a look at GitHub - brokenhandsio/swiftpm-cleanup: Script to cleanup SwiftPM environments - this will delete all caches and directories as well as derived data is required

Thanks, I'll check it out. I'm sure this is not a new topic but has there ever been an explanation give on why this is such a broken experience on xcode? Dependency management is mostly a solved problem in other ecosystems but in Swift and xcode it feels half-baked and janky

i doubt that this is an XCode-specific problem, SPM is similarly broken on linux with VSCode.

It's not a specific Swift problem but reliable package management is a solved problem in other ecosystems. And installing dependencies into some esoteric directory instead of within the projects own directory, git ignored of course, would go a long way to putting us on a better path.

Relying on a git repo and tags for versions is problematic to begin with.

yes, it is a solved problem in other languages but sadly not in swift, for the simple reason that no one is being paid to solve it. this is of course, one of the most common species of living room elephant in open source projects.

that's so strange to read that post, I would have figured dev experience is important to Apple and keeping that quality high is part of a draw to the language and tool but maybe not?

As frustrating as the underinvestment into SPM can be, it's still a pretty massive improvement over the previous status quo of just not even attempting to have any sort of dependency management system.

I have generally suspected that Apple's views on what's important for developer experience is very heavily shaped by what they need internally, and this is a place where developers inside Apple and outside Apple have very different needs.

1 Like

That's a fair point, I do lack some historical context here. I'm just surprised to see this particular aspect of developing in xcode being lacking