我尝试了Maxwell上面提供的解决方案,但对我来说并没有解决问题。
这个错误在Xcode 12中出现,但升级到Xcode 13也没有修复它。
相反,我决定相信Xcode的话,并删除Package.resolved文件。但它在哪里?我这样做:
在Finder中,按Shift+Cmd+.以显示隐藏的文件和文件夹。
Package.resolved文件位于.xcodeproj目录下的[appName].xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
右键单击.xcodeproj和project.xcworkspace以显示包内容。
将Package.resolved文件移动到垃圾箱,然后清空垃圾箱。
重新打开Xcode并再次打开项目。这给了我另一个错误:根路径下的软件包无法访问(无法读取'4.5.0':)
在Xcode中,选择File / Packages / Reset package caches。 Swift Package Manager开始处理此操作。
重新构建项目。错误已经消失,我的项目成功重建。
再补充另一种有效的情况,我在CI上遇到了相同的错误,但是更详细一些:
Package.resolved文件已损坏或格式不正确;修复或删除该文件以继续:不支持的模式版本2。
这意味着CI上的Xcode版本不支持该模式格式。
将Xcode版本更新为与我们的开发环境匹配即可解决问题。
/Applications/Xcode_13.2.1.app/Contents/Developer/usr/bin/xcodebuild -resolvePackageDependencies -scheme "xxx (Production)" -project ./xxx.xcodeproj
。
我不确定该怎么办。我甚至尝试从 gitignore 中删除 Package.resolved,但没有任何改变。 - Tarekmacos-12
可以让 13.4.1
版本工作,而不是用 macos-latest
。 - Tarekmacos-latest
切换到 macos-12
是解决方法。很遗憾,你会认为 latest
应该与更近期的 Xcode 版本捆绑在一起。 - Justin Hammond在合并更新后,我遇到了同样的问题。对我有帮助的是删除Package.resolved
文件。
在项目中同时使用 CocoaPods 和 SwiftPackageManager 时,会有两个Package.resolved文件。一个位于YourProj.xcworkspace中,另一个位于YourProj.xcproj -> project.xcworkspace中。我不得不将两个文件都删除,然后它才能正常工作。
我在forums.swift.org上找到了这个答案,对我很有用:
接受的答案有效但是找到它真的很令人困惑。
如果看了接受的答案但找不到在哪里,看一下@Andres Canella在下面的评论:project.xcworkspace/xcshareddata/swiftpm/Package.resolved
1- 关闭Xcode
2- 打开你的项目文件夹,然后右键点击白色项目图标,并选择显示包内容
3- 打开xcshareddata文件夹,然后打开swiftpm文件夹,再打开configuration文件夹,您应该能看到Package.resolved文件,只需将其删除即可。
确保依赖图处于良好状态。Xcode在识别和报告版本冲突问题方面非常糟糕。
我赞同上述内容并希望进行补充(或者更简单一些),您不需要关闭Xcode,只需执行相同的操作,Package.resolved文件将自动添加到swiftpm文件夹中,然后您只需要更新pods即可。
xcodeproj
中。 - Joshua