提问人:lazarevzubov 提问时间:9/22/2021 更新时间:7/12/2023 访问量:17270
本地 Swift 软件包在 Xcode 13 中停止工作
Local Swift Packages Stopped Working in Xcode 13
问:
我已将本地 Swift 包添加到工作区。它们驻留在项目子文件夹中,并作为 git 子模块连接到不同的 git 存储库。一切都运行良好(项目能够构建,包能够解析,我可以在同一工作区中编辑包)。
在我将 Xcode 更新到 13.0 后,项目开始无法构建,每个本地包依赖项都出现多个错误。删除派生数据、重置包、清理构建文件夹和重新启动 Xcode 都无济于事。Missing package product
答:
从工作区中删除包引用并重新添加它们(通过从 Finder 中简单地拖放)解决了该问题。
我甚至不需要重新配置相应的方案,也不需要在目标中重新添加依赖项。
评论
这对我有用:
- 单击项目文件,然后转到“项目(不是目标)”->“包依赖项”选项卡。
- 双击任何包并将位置 URL 复制到剪贴板。
- 使用 - 按钮删除该包。
- 重新添加它,粘贴 URL。
- 清理 Build Folder,然后清理 Build。
或者,在 Target -> Build Phases -> Link Binary With Libraries 中删除未使用的包,也为我删除了错误。
退出 Xcode
打开终端
通过终端导航到您所在的目录(
.xcodeproj
cd path/to/your/apps/folder
)跑
xcodebuild -resolvePackageDependencies
包完成解析后,打开 Xcode 并再次尝试构建。
评论
xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance
如果@lazarevzubov的回答没有帮助,请尝试几个额外的步骤:
- 打开 xcode
- 删除 Build Phases / Link 下的一个或多个库 带库的二进制文件
- 放弃 git 下的更改
- 清洁项目
- 关闭 xcode
- 跑
xcodebuild -resolvePackageDependencies
- 再次打开 xcode 并尝试构建
在 XCode 中,
文件> Swift 包>重置包缓存
就我而言,问题是 GitHub 上的证书过期。我必须创建一个新证书,以便可以加载包。
当我在其他 Xcode 窗口中打开要用作本地包的包时,偶尔会发生这种情况。关闭其他打开该包项目或将其用作本地包的 Xcode 窗口可能会有所帮助。(关闭其他窗口,然后尝试将其重新添加为本地包。
评论
上面没有提到的另一个可能的问题。在项目文件夹中查找与本地包同名的空文件夹。这可能会使链接器感到困惑。此外,git 不会选择它,因为 git 看不到空目录。 只需删除空文件夹即可。
评论