Xcode错误: 未知原因导致提取失败

51

有人知道为什么在Xcode 5上会出现这个错误吗?

error

答案:

当我不小心将一个.psd文件重命名为.png时,就出现了这个问题。将图像转换为实际的png而不是Photoshop文件后,问题得到解决。


我做了完全相同的事情。谢谢! - Gary Johnson
我也做到了!谢谢Harry,不然我肯定要花很多时间去弄清楚它。 - Andrew Slabko
这只发生在您归档时吗?对我来说是这样的。构建和运行都很好,但只有在尝试归档时才遇到了这个问题。 - T Blank
你可以查看日志文件,找到失败的那个,这是解决问题最快的方法,你会看到类似这样的错误: CoreThemeDefinition: 无法为 file:///.../imageset/attach_voice_down.png 创建图像 /* com.apple.actool.errors */ - ReduxDJ
使用 Git LFS 时遇到了类似的问题。 - Ryan Cortez
PNG文件被错误地命名为.jpg似乎是导致我的CompileAssetCatalog失败的原因。 - Andrew Moore
19个回答

48

我发现我的png文件实际上是一个psd文件。 我删除了这个文件并重新创建了一个新的png文件,然后一切都正常了。

grgr


这里也是,扩展名是'png',但我不小心将文件保存为psd类型。遗憾的是Xcode无法识别具有问题的特定文件,需要进行一些试错来缩小范围。 - Craig Grummitt
重要提示:预览和Xcode将像正常PNG一样处理您的伪造PNG。我的tvOS应用程序图标层之一恰好是一个伪装成PNG的PSD,而且它比我想象的要难追踪得多。因此,在测试您的PNG资产时,您必须尝试在Photoshop中打开它们,而不仅仅是在预览中。您的应用程序将构建,并且UIImage将与已命名为*.png的PSD正常工作。我真的希望它不会这样。 - T Blank
2
@Harry 不确定你的意思是什么。它仍然对其他人(包括我)有帮助。 - DardanM
刚刚加入一个项目,迁移到了Xcode 8,遇到了这个错误,并查看了xcasset文件中存在的100 x 3个资源... 真是美好的一天。 - Martin
在终端中,您可以执行 file filename.png 命令来检查文件类型。我还在 *.xcassets 目录的根目录下使用了 file */* 命令来检查组中的所有文件。 - RyanJM

13

我和Karsten有着相同的情况,其中一个图像是psd格式。我在Mac预览应用程序中打开了该文件并尝试导出,发现它实际上是一种PSD格式而不是.png格式。输入图像描述


10

你可能已经从普通项目迁移到使用图像目录。因此,你可以尝试复制捆绑资源(如启动图片)。这是因为迁移到用于图标和启动图像的资产目录似乎并不总是自动添加到目标中。

你可以在这里这里找到更多相关信息。

希望能对你有所帮助。


6
为了让未来的读者更清楚:第二个链接指出,您可能已将图像保存为错误的格式(在我的情况下:使用 .PNG 扩展名保存 PSD 文件)。 - Kevin R
省去了我很多的头疼。第二个链接也点赞。谢谢! - Luis Artola
4
我所有的图像都是PNG格式...但我在Xcode11GM-seed1中仍然遇到错误。 - CrazyPro007
什么是 image.catalog - IgorGanapolsky

4

在我的情况下,我只是忘记为我的repo初始化Git LFS。


谢谢!你救了我的神经。 - Jozka Jozin

4

对我来说,我使用的是 Xcode beta 版本,但我没有将 MAC OSX beta 升级到最新版本,因为苹果不建议这样做。

在此输入图片描述.


3
对我来说,解决方案是按照以下步骤操作(假定我没有.psd文件而是.png等文件格式)。
前往Xcode项目设置中的TargetGeneral标签,向下滚动到"App Icons and Launch Images"部分,并将"App Icons Source"的值从"AppIcon"更改为"Don't use asset catalogs"。 注意:以这种方式项目将在iOS上构建和部署,稍后您可以将AppIcon设置更改回来,添加自定义的AppIcon(具有正确的文件格式和文件扩展名)。

3

在我的情况下,它是一个被保存为PNG格式的PSD文件。您可以通过在资产目录中在终端运行以下命令来搜索错误的文件:

grep -rL "PNG" --include \*.png . 

3

Xcode 11:我刚刚将Assets.xcassets删除并重新添加到目标中,这样就可以了。


3

我曾遇到相同的错误,是因为我忘记了初始化Git LFS。所以png文件没有被拉下来。


3

在我的情况下,其中一个图像资源已损坏,导致了这个问题。

通常,损坏的图像大小为0(零)。因此,我们可以使用终端找出哪个文件已损坏:

find ./你的目录路径 -size 0 -print


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接