skip to Main Content

In my app I use several of SPM, I inserted them to my project. Yesterday I updated my Xcode to the last version (13.2.1), but I’m having lot of issues with SPM. Usually when I switch a branch or change a version of Xcode I clean all by using command+shift+k. I did the same with the new release of Xcode, but I’m having lots of issue by resolving SPM, as you can see in this image

enter image description here

all of my package are fetched but not resolved. This is a very big problem because in this condition I can’t compile my app.
There’s a way to fix this issue? There’s someone who has the same problem like me?
I’m getting crazy about this.
Thank you

6

Answers


  1. These Steps work for me on XCode 13:

    1. Clear derived data
    2. Quit XCode
    3. Open XCode Again
    4. Wait for Indexing | Processing files
    5. Build (This will fail most probably)
    6. Wait for packages to resolve
    7. Clean Project
    8. Build.

    Also if you have errors on local packages, then just try to build them individually.

    Hopefully it will help

    Login or Signup to reply.
  2. 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?)

    Login or Signup to reply.
  3. For me,

    1. hit Cmd + q to totally quit Xcode
    2. Wait several seconds to make sure Xcode is completely closed.
    3. Re-Open Xcode.
    Login or Signup to reply.
  4. What worked for me was following these steps in Xcode

    1. File > Packages > Reset Package Caches
    2. File > Packages > Resolve Package Versions
    Login or Signup to reply.
  5. For me I added the package anyway and then clicked on File > packages > Reset package caches

    Login or Signup to reply.
  6. Using Xcode 14.2, I:

    • cleaned the build folder
    • closed the project
    • created a workspace in the same project base folder
    • dragged the .xcodeproj file into the workspace
    • waited until it loaded all the packages and finished creating the indexes
      built the project

    all warnings went away.

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search