I just spent two days on this same issue, and finally got my rather long list of packages to resolve and build. I just can't believe Apple can't fix this. If we could just update one package at a time we could slowly get everything to work. In any case, I just made notes to my team of what I did to finally get all packages to resolve:
If Xcode struggles to resolve them, the solution is complicated and must often be done multiple times (Xcode 13.2.1):
- close the project
- quit Xcode
- delete every folder in the Derived folders, then in Finder delete Trash
- cd to the folder containing the MyProject.xcodeproj and run:
xcodebuild -resolvePackageDependencies -project MyProject.xcodeproj -scheme MyScheme -platform="iOS, name:'Any iOS Device'"
- open Xcode
- open the project
Some projects may not resolve or have errors (little red "x"s on the right side). Not good but may be solvable:
- use Xcode "File" -> "Packages" -> "Resolve Packages"
- alternately, close the project, then reopen it.
You will probably get some warnings when running xcode build
, I get:
--- xcodebuild: WARNING: Using the first of multiple matching destinations:
{ platform:macOS, arch:arm64, variant:Designed for [iPad,iPhone], id:xxx-xxx }
{ platform:iOS, id:dvtdevice-DVTiPhonePlaceholder-iphoneos:placeholder, name:Any iOS Device }
{ platform:iOS Simulator, id:dvtdevice-DVTiOSDeviceSimulatorPlaceholder-iphonesimulator:placeholder, name:Any iOS Simulator Device }
...
Once you get to a stable position, with no errors and all packages showing version numbers, you should be good for the long haul.
IMPORTANT: occasionally you need to update the minimum version shown in the Project -> Package Dependencies, to reflect the
existing Package release (which you may see from the left Xcode panel, or by visiting the Packages github site. If they are too
old you may have problems resolving after you wipe the Derived Folder (for some other reason, maybe Package Format changed?)