Xcode 13.2.1 无法解析 Swift 包管理器
Xcode 13.2.1 unable to resolve Swift Package Manager
在我的应用程序中,我使用了几个 SPM,我将它们插入到我的项目中。昨天我将 Xcode 更新到最新版本 (13.2.1),但我在使用 SPM 时遇到了很多问题。通常当我切换分支或更改 Xcode 的版本时,我会使用 command+shift+k 清除所有内容。我对 Xcode 的新版本做了同样的事情,但是我在解决 SPM 时遇到了很多问题,正如您在这张图片中看到的那样
我的所有包裹都已提取但未解析。这是一个非常大的问题,因为在这种情况下我无法编译我的应用程序。
有办法解决这个问题吗?有跟我一样问题的吗?
我对此感到疯狂。
谢谢
这些步骤在 XCode 13:
对我有效
- 清除派生数据
- 退出XCode
- 再次打开XCode
- 等待索引 |处理文件
- 构建(这很可能会失败)
- 等待包解决
- 清理项目
- 构建。
此外,如果您在本地包上遇到错误,请尝试单独构建它们。
希望对你有所帮助
我在同一个问题上花了两天时间,终于得到了相当长的要解决和构建的软件包列表。我简直不敢相信 Apple 无法解决这个问题。如果我们一次只更新一个包,我们就可以慢慢地让一切正常工作。无论如何,我只是向我的团队记录了我为最终解决所有包所做的工作:
如果Xcode难以解决它们,则解决方案很复杂并且必须经常进行多次(Xcode 13.2.1):
- 关闭项目
- 退出 Xcode
- 删除派生文件夹中的所有文件夹,然后在 Finder 中删除回收站
- cd 到包含 MyProject.xcodeproj 和 运行 的文件夹:
xcodebuild -resolvePackageDependencies -project MyProject.xcodeproj -scheme MyScheme -platform="iOS, name:'Any iOS Device'"
- 打开Xcode
- 打开项目
有些项目可能无法解决或有错误(右侧的小红“x”)。不好但可能可以解决:
- 使用Xcode“文件”->“包”->“解析包”
- 或者,关闭项目,然后重新打开它。
当 运行 宁 xcode build
时,您可能会收到一些警告,我得到:
--- 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 }
...
一旦你到达一个稳定的位置,没有错误并且所有包都显示版本号,你应该可以长期使用。
重要提示:有时您需要更新项目 -> 包依赖项中显示的最低版本,以反映
现有的包发布(您可以从左侧 Xcode 面板或访问包 github 站点看到。如果它们太
旧的,您在擦除派生文件夹后可能会遇到问题(由于某些其他原因,可能包格式已更改?)
对我来说,
- 点击
Cmd + q
完全退出 Xcode
- 等待几秒钟以确保 Xcode 完全关闭。
- Re-Open Xcode.
在我的应用程序中,我使用了几个 SPM,我将它们插入到我的项目中。昨天我将 Xcode 更新到最新版本 (13.2.1),但我在使用 SPM 时遇到了很多问题。通常当我切换分支或更改 Xcode 的版本时,我会使用 command+shift+k 清除所有内容。我对 Xcode 的新版本做了同样的事情,但是我在解决 SPM 时遇到了很多问题,正如您在这张图片中看到的那样
我的所有包裹都已提取但未解析。这是一个非常大的问题,因为在这种情况下我无法编译我的应用程序。 有办法解决这个问题吗?有跟我一样问题的吗? 我对此感到疯狂。 谢谢
这些步骤在 XCode 13:
对我有效- 清除派生数据
- 退出XCode
- 再次打开XCode
- 等待索引 |处理文件
- 构建(这很可能会失败)
- 等待包解决
- 清理项目
- 构建。
此外,如果您在本地包上遇到错误,请尝试单独构建它们。
希望对你有所帮助
我在同一个问题上花了两天时间,终于得到了相当长的要解决和构建的软件包列表。我简直不敢相信 Apple 无法解决这个问题。如果我们一次只更新一个包,我们就可以慢慢地让一切正常工作。无论如何,我只是向我的团队记录了我为最终解决所有包所做的工作:
如果Xcode难以解决它们,则解决方案很复杂并且必须经常进行多次(Xcode 13.2.1):
- 关闭项目
- 退出 Xcode
- 删除派生文件夹中的所有文件夹,然后在 Finder 中删除回收站
- cd 到包含 MyProject.xcodeproj 和 运行 的文件夹: xcodebuild -resolvePackageDependencies -project MyProject.xcodeproj -scheme MyScheme -platform="iOS, name:'Any iOS Device'"
- 打开Xcode
- 打开项目
有些项目可能无法解决或有错误(右侧的小红“x”)。不好但可能可以解决:
- 使用Xcode“文件”->“包”->“解析包”
- 或者,关闭项目,然后重新打开它。
当 运行 宁 xcode build
时,您可能会收到一些警告,我得到:
--- 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 }
...
一旦你到达一个稳定的位置,没有错误并且所有包都显示版本号,你应该可以长期使用。
重要提示:有时您需要更新项目 -> 包依赖项中显示的最低版本,以反映 现有的包发布(您可以从左侧 Xcode 面板或访问包 github 站点看到。如果它们太 旧的,您在擦除派生文件夹后可能会遇到问题(由于某些其他原因,可能包格式已更改?)
对我来说,
- 点击
Cmd + q
完全退出 Xcode - 等待几秒钟以确保 Xcode 完全关闭。
- Re-Open Xcode.