Ios Xcode 11.4编译错误';缺少包装产品<;包装名称>';

Ios Xcode 11.4编译错误';缺少包装产品<;包装名称>';,ios,swift,xcode,dependencies,Ios,Swift,Xcode,Dependencies,当我在我的Xcode项目中集成一个应用程序时,最初一切都很好,但当我切换分支并想要运行应用程序Xcode时,会出现编译错误缺少包产品。当我退出Xcode并重新打开它时,一切又恢复正常了。知道这是什么吗?一个Xcode错误 我们还通过Swift软件包管理器集成了外部软件包,该软件包运行良好。没有问题 Xcode中的.转到文件>Swift软件包>更新到最新的软件包版本中也详细描述了该问题 fetch the latest possible version(based on restrictions)

当我在我的Xcode项目中集成一个应用程序时,最初一切都很好,但当我切换分支并想要运行应用程序Xcode时,会出现编译错误
缺少包产品
。当我退出Xcode并重新打开它时,一切又恢复正常了。知道这是什么吗?一个Xcode错误

我们还通过Swift软件包管理器集成了外部软件包,该软件包运行良好。没有问题


Xcode中的.

转到文件>Swift软件包>更新到最新的软件包版本中也详细描述了该问题

fetch the latest possible version(based on restrictions)

为我工作

对我来说,我需要文件>Swift软件包>重置软件包缓存

我不确定根本原因,但我经常会遇到这种情况。这不是最优雅的解决方案,但重置包缓存或更新到最新的包版本对我都不起作用。对我来说,我必须退出Xcode,删除DerivedData

rm -rf ~/Library/Developer/Xcode/DerivedData/*
reset cache(derived folder) -> Update to Latest Package Versions 
pod install

然后重建。

在Xcode中转到
Product>Clean Build文件夹

这对我有用。这个问题最初是从我试图解决另一个问题时开始的,这个问题是在我删除派生数据文件夹后出现的

重新启动Xcode不起作用,但清理生成文件夹起作用。我不知道这里的其他答案是否适用于我,因为我没有尝试它们,因为清理构建文件夹是有效的。

在Xcode 12.0.1(12A7300)中,此错误已修复。它是由Xcode更新自动为我解决的

编辑Xcode 12.5[beta]


苹果增加了一个SPM缓存。看我的。如果您在使用此Xcode版本时遇到此问题,删除此缓存可能会有所帮助。

在Xcode 12.5 beta版上,没有一个答案对我有效。我必须手动删除所有spm包并重新添加它们。

解决方案1:文件>Swift包>重置包缓存

reset cache(derived folder) -> Update to Latest Package Versions 

解决方案2:文件>Swift软件包>更新至最新软件包版本

fetch the latest possible version(based on restrictions)

我在两个不同项目的两个不同Xcode实例中打开同一个本地Swift包时遇到了这个错误。通过退出Xcode,一次只打开一个项目,使其重新工作。

SPM重置包缓存vs更新到最新的包版本

File -> Swift Packages -> Reset Package Caches  
File -> Swift Packages -> Update to Latest Package Versions 
更新至最新的软件包版本

fetch the latest possible version(based on restrictions)
重置包缓存

reset cache(derived folder) -> Update to Latest Package Versions 
文件夹

<path_to_derived_data>/<randomizer>/SourcePackages/checkouts/<project_name>
//e.g
/Users/alex/Library/Developer/Xcode/DerivedData/SPM-dpsmlyjrashqjefkfheppizcrgic/SourcePackages/checkouts/SPMExperiments
//SourcePackages/checkout/
//e、 g
/Users/alex/Library/Developer/Xcode/DerivedData/SPM-dpsmlyjrashqjefkfheppizcrgic/SourcePackages/checkout/spmeexperiments

重新安装吊舱对我来说很有效

pod install

目前我的一个解决方法是运行Product>CleanBuildFolder(cmd-k),然后重新启动Xcode。这在Xcode 12.4和12.5中都是一个问题,12.5的每用户包缓存并没有解决这个问题

文件>Swift软件包>重置软件包缓存似乎也能工作,但对我来说速度较慢

背景:

我的一个供应商通过SPM分发预编译的二进制库。每当我在git开发分支之间切换时,我都会得到:

“二进制目标'xyz'的项目提取失败:操作无法完成。(TSCBasic.StringError错误1)。”


对于完全不相关的包,它也会导致这些“缺少包产品”错误,这可能是因为如果一个包失败,整个SPM过程也会失败(“解析包图失败”),即使这些包是完全独立的。

在Xcode 11.5中仍然是一个问题-(在Xcode 12.0 Beta 1(12A6159)中仍然是一个问题)你能解决这个问题吗?@blackjacxNope遗憾的是不能:-(我希望他们能在Xcode 12中解决这个问题好吧,这是硬核,关闭/重新打开Xcode就足够了:D这也是其他人都告诉我的,哈哈。在我的情况下,它就是不动,所以我决定把它都炸成地狱。事实上,重新打开对我来说已经足够了。即使有一个本地软件包,我也得到了(误导性)每当package.swift中包的“平台”部分发生更改时,就会出现错误消息。这为我解决了问题。在我的情况下没有解决。这个解决方案对我有效。它真的对你没有解决吗?!在Xcode 12升级后,我再也没有遇到过这个问题……有人能确认一下吗?我不确定,但上面的链接似乎更像是一个s解决方案。链接为有缺陷的Xcode版本解决了问题,更新了公认的答案,你说的对。Xcode 11的这个问题的答案实际上不是这个。但是这个答案无论如何都是正确的,所以它不应该收到否决票。Xcode 12.5缓存了某个地方的依赖项。这在这个测试版中是新的。请参阅。如果你找到了答案,它将这对我和你自己都有很大的帮助,因为根本不需要重新添加包。你可能只是错过了删除缓存。谢谢,伙计!这个答案为我节省了很多时间!