I've been relying on SPM to manage some packages related to a project I'm working on, and while it mostly worked well when the dependencies were small, it has become increasingly difficult to make updates to package versions and have Xcode use those updates (now around 20 total depencies).
For example, suppose I have this working state:
Package A (private in Github) -> tag 1.2.2
Xcode SPM 'Up to Next Major Version" -> 1.00 < 2.00
Now, I want to update package A to be a new version (e.g. 1.3.0).
I update the package, give it a new tag and push the tags to git.
Now, if I open my project without performing any action, the package version will almost always not update. Things I can do:
- 'Update Package' from the Package Dependency list. (Has no effect)
- 'Update to latest package versions' from the Package Dependency header. (Has no effect)
- Resolve package versions / Reset package caches (Has no effect)
What used to work in the past was to remove the dependency in Xcode, and re-add it. 90% of the time, it wouldn't add on first try, so I would have to try to add it, cancel out of the dialog once, and try again. That used to work.
Now, a new package version won't add at all. I just get the 'Unable to resolve dependencies' dialog. 'Add anyway' leaves my project in an unusable state.
I'm now in a position where I have to close, clean, restart, reset caches, etc for long stretches of time until with some stroke of luck the versions update correctly and the project will build. This is hugely disruptive to my development flow and am hoping to find a reliable solution that doesn't take 30+ minutes of rebuilding and retrying before the project is in a usable state with my updated package.