本地 Swift 软件包在 Xcode 13 中停止工作

Local Swift Packages Stopped Working in Xcode 13

提问人:lazarevzubov 提问时间:9/22/2021 更新时间:7/12/2023 访问量:17270

问:

我已将本地 Swift 包添加到工作区。它们驻留在项目子文件夹中,并作为 git 子模块连接到不同的 git 存储库。一切都运行良好(项目能够构建,包能够解析,我可以在同一工作区中编辑包)。

在我将 Xcode 更新到 13.0 后,项目开始无法构建,每个本地包依赖项都出现多个错误。删除派生数据、重置包、清理构建文件夹和重新启动 Xcode 都无济于事。Missing package product

swift xcode swift-package-manager

评论

0赞 Hack Saw 1/19/2022
我有这个问题,这些解决方案都不适合我。我使用的是 Xcode 13.2.1
1赞 lazarevzubov 6/28/2022
@Yodagama我相信 Hack Saw 说这些解决方案都不适合他们。您指出的解决方案是所提到的“这些”之一。

答:

3赞 lazarevzubov 9/22/2021 #1

从工作区中删除包引用并重新添加它们(通过从 Finder 中简单地拖放)解决了该问题。

我甚至不需要重新配置相应的方案,也不需要在目标中重新添加依赖项。

评论

0赞 Chris 12/6/2023
就我而言,这改变了我的本地包在工作区中的列出位置。以前它位于“包依赖项”部分下,但是当我删除并重新添加它时,它出现在我的 XCode 项目上方,并且工作区文件发生了变化,因此它被视为一个额外的“组”条目。此结构修复了我遇到的 XCode Cloud 问题。
7赞 elprl 9/22/2021 #2

这对我有用:

  • 单击项目文件,然后转到“项目(不是目标)”->“包依赖项”选项卡。
  • 双击任何包并将位置 URL 复制到剪贴板。
  • 使用 - 按钮删除该包。
  • 重新添加它,粘贴 URL。
  • 清理 Build Folder,然后清理 Build。

或者,在 Target -> Build Phases -> Link Binary With Libraries 中删除未使用的包,也为我删除了错误。

58赞 YodagamaHeshan 11/1/2021 #3
  1. 退出 Xcode

  2. 打开终端

  3. 通过终端导航到您所在的目录.xcodeprojcd path/to/your/apps/folder)

  4. xcodebuild -resolvePackageDependencies

  5. 包完成解析后,打开 Xcode 并再次尝试构建。

评论

2赞 rudifa 11/27/2021
但除此之外,我还必须将框架添加到每个目标(在我的情况下是 iOS 和 macOS)中,在目标的构建阶段:将二进制文件与库链接
2赞 Jorge Vicente Mendoza 3/10/2022
这是迄今为止解决这个问题的最精简的方法,它在具有不同 Xcode 版本的不同计算机上为我工作,感谢 Yodagama 和 @DanielStorm 的编辑
2赞 Donald 7/7/2022
这对我有用,即使 Xcode > File > Packages > Resolve 没有。
0赞 Lance Samaria 8/18/2022
这个答案肯定有效,但如果运行它会给任何人一个命令行错误,那么在这个答案之前先尝试这个 stackoverflow.com/a/72115137/4833705xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance
1赞 Haseeb Iqbal 5/23/2022 #4

如果@lazarevzubov的回答没有帮助,请尝试几个额外的步骤:

  • 打开 xcode
  • 删除 Build Phases / Link 下的一个或多个库 带库的二进制文件
  • 放弃 git 下的更改
  • 清洁项目
  • 关闭 xcode
  • xcodebuild -resolvePackageDependencies
  • 再次打开 xcode 并尝试构建
3赞 Vishal 11/21/2022 #5

在 XCode 中,

文件> Swift 包>重置包缓存

0赞 Kateridzhe 2/24/2023 #6

就我而言,问题是 GitHub 上的证书过期。我必须创建一个新证书,以便可以加载包。

1赞 Liam 3/3/2023 #7

当我在其他 Xcode 窗口中打开要用作本地包的包时,偶尔会发生这种情况。关闭其他打开该包项目或将其用作本地包的 Xcode 窗口可能会有所帮助。(关闭其他窗口,然后尝试将其重新添加为本地包。

评论

0赞 Anthony Dito 7/6/2023
这为我解决了!
0赞 bauerMusic 7/12/2023 #8

上面没有提到的另一个可能的问题。在项目文件夹中查找与本地包同名的空文件夹。这可能会使链接器感到困惑。此外,git 不会选择它,因为 git 看不到空目录。 只需删除空文件夹即可。