命令 CompileAssetCatalog 失败,退出代码为非零

Posted

技术标签:

【中文标题】命令 CompileAssetCatalog 失败,退出代码为非零【英文标题】:Command CompileAssetCatalog failed with a nonzero exit code 【发布时间】:2019-02-28 13:34:18 【问题描述】:

正在运行 Xcode 10,但似乎无法找到有关构建我的项目时发生的此错误的太多信息。

关于如何解决这个问题的任何想法?

这是错误前的最后一行:

桌面/CheerApp!/CheerApp!/Assets.xcassets 命令 CompileAssetCatalog 失败,退出代码非零 -

扩展:

编译资产目录 /Users/michaelansell/Library/Developer/Xcode/DerivedData/CheerApp!-ehbjnqaldsycfegiviymewkplqhm/Build/Products/Debug-iphonesimulator/CheerApp!.app /Users/michaelansell/Desktop/CheerApp!/CheerApp!/Assets.xcassets(在 目标:CheerApp!) cd /Users/michaelansell/Desktop/CheerApp! /Applications/Xcode.app/Contents/Developer/usr/bin/actool --output-format human-readable-text --notices --warnings --export-dependency-info /Users/michaelansell/Library/Developer/Xcode/ DerivedData/CheerApp!-ehbjnqaldsycfegiviymewkplqhm/Build/Intermediates.noindex/CheerApp!.build/Debug-iphonesimulator/CheerApp!.build/assetcatalog_dependencies --output-partial-info-plist /Users/michaelansell/Library/Developer/Xcode/DerivedData/CheerApp!-ehbjnqaldsycfegiviymewkplqhm/Build/Intermediates.noindex/CheerApp!.build/Debug-iphonesimulator/CheerApp!.build/assetcatalog_generated_info.plist --app-icon AppIcon --compress-pngs --enable-on-demand-resources 是 --优化空间 --filter-for-device-model iPhone11,2 --filter-for-device-os-version 12.0 - -sticker-pack-identifier-prefix Mike.CheerApp-.sticker-pack。 --目标设备 iphone --目标设备 ipad --minimum-deployment-target 11.4 --platform iphonesimulator --product-type com.apple.product-type.application --compile /Users/michaelansell/Library/Developer/Xcode/DerivedData/CheerApp!-ehbjnqaldsycfegiviymewkplqhm/Build/Products/Debug-iphonesimulator/

【问题讨论】:

您可能需要了解有关失败原因的更多信息。这个问题提出了一种获取有关失败构建过程的更多信息的方法:***.com/questions/30060898/… 添加更多信息会有所帮助。 如果你想看一下,我添加了一些信息 【参考方案1】:

如果您在使用 Xcode 版本 13 的 react-native 项目中遇到此问题:您需要将应用图标添加到 Assets 文件夹,而不是 Images 文件夹。

【讨论】:

【参考方案2】:

在构建设置中, 启用“在产品包中嵌入资产包”。 screenshot

【讨论】:

【参考方案3】:

如果您没有提供 AppIcon,则会产生相同的错误。

/* com.apple.actool.errors / :错误:没有一个输入目录包含匹配的贴纸图标集或名为“AppIcon”的应用程序图标集。 / com.apple.actool.compilation-results */

【讨论】:

记得在提供新答案之前查看现有答案。在这种情况下,两年前在an answer by @Vladimir Kuzomenskyi 中已经提出了更多详细信息。【参考方案4】:

我的解决方案是在 XCode 10.1 上尝试了上述许多建议的修复后,在 XCode 10.0 上运行该项目。神奇的是,它真的奏效了。

【讨论】:

【参考方案5】:

我将 Xcode 从 12 降级到 10.1 以处理旧项目。我之前成功地做到了这一点,但是在从 Catalina 升级到 Big Sur 之后它就停止了工作。我收到有关 Storyboard 和 Asset 文件夹的错误:

Command CompileAssetCatalog 因非零退出代码命令而失败

CompileStoryboard 失败,退出代码非零

我尝试了一切。并且只能通过删除此库来使其工作(右键单击 Xcode 10.1 应用程序图标>“显示包内容”):

Xcode.app/Contents/Developer/usr/lib/libMainThreadChecker.dylib

【讨论】:

【参考方案6】:

我的解决方案是删除 Assets.xcassets 中未使用的图像。

为我工作。

【讨论】:

【参考方案7】:

当资产目录需要很长时间编译时会出现此错误。这是我遇到的又一个案例,在大多数情况下,再次重建项目解决了这个问题。

【讨论】:

【参考方案8】:

在我的资产文件夹中,我有一些图像,其中一张已损坏。 在 Assets 文件夹中加载损坏的文件也会导致此错误!

【讨论】:

【参考方案9】:

尝试重新启动您的 Xcode 和 Mac。然后,清理构建项目本身(command+shift+B)。为我工作。有时,Xcode 的行为很奇怪,只需要重新启动即可。祝你好运!

【讨论】:

【参考方案10】:

尝试删除然后重新添加您正在使用的一些文件。至少对我来说是这样。

这似乎是 Xcode 10.1 中的一个错误

【讨论】:

这仍然是 Xcode 12 中的错误吗?我遇到了同样的问题。【参考方案11】:

对我有用的是在资产中添加一个 AppIcon。我之前删除了项目附带的那个,但重新添加它为我解决了这个问题

【讨论】:

【参考方案12】:

确保为您的 Xcode 版本安装了命令行工具和所有必需的组件,因为资产编译确实使用了其中一些工具,并且可能使用过时的工具,具体取决于您的设置。

在 Xcode 10.1 升级后,我在远程构建机器上遇到了 CompileAssetCatalog 错误 - 但它在本地单独的机器上运行。我没有在远程机器上运行 xcode,所以它没有提示安装所有最新组件,运行 xcode 并安装缺少的组件为我们解决了这个问题。

【讨论】:

【参考方案13】:

确保您的资产中有一个 AppIcon 文件。我有同样的错误,因为我确实删除了那个文件。

【讨论】:

【参考方案14】:

这应该是一个临时的解决方法, 如果你有急事, 但是通过更改模拟器构建成功。

【讨论】:

【参考方案15】:

我在 Xcode 11 上遇到了这个问题,直到我删除并重新安装了 Xcode。

【讨论】:

【参考方案16】:

转到 xcode 中的 Assets.xcassets 并解决其中的错误和警告。在此 CheerApp 资产未正确链接到 xcode 中的该资产并在各自的 1x、2x 中拖放

【讨论】:

【参考方案17】:

我发现与启动图像相关的相同错误。

我的解决方案:

在主项目设置中转到:

    标签:常规 部分:应用程序图标和启动图像 选项:启动图像源

移除指向资产目录的链接,并使用 CMD+SHIFT+K 清理构建文件夹。

瞧!

您可以稍后再次链接。

【讨论】:

【参考方案18】:

所有答案都不适合我。 我解决和发现的问题是获得更好的 Xcode,如 Xcode11 beta5 或 Xcode10.3 stable 并安装它,然后 Shift-Command-K 清理项目。

用新的 Xcode 版本重新编译项目解决了这个问题。

【讨论】:

【参考方案19】:

如果您在 Xcode 10.3 上遇到此问题,请从 library/Developer/Xcode 文件夹中删除文件夹 ios DeviceSupportDerivedDataArchives,然后重新启动您的 mac。

【讨论】:

【参考方案20】:

在我的例子中,.xcassets 文件的目标成员资格由于某种原因未被选中。我所要做的就是为我正在处理的目标重新启用它并修复了错误。

【讨论】:

【参考方案21】:

我也遇到了同样的问题,我按照以下步骤操作:

1- Remove Reference Assets.xcassets 文件夹。

2- 清空(CMD+SHIFT+K 和 CMD+ALT+SHIFT+K)。

3- 构建 (CMD+B)。

4- 添加您的Assets.xcassets 文件夹。

5- 再次执行步骤 2 和 3。

【讨论】:

【参考方案22】:

在 Xcode 10 中转到产品>清理构建文件夹

用户快捷键为 Shift+Command+K

在 make run 之后它会工作,它在我的情况下工作。

【讨论】:

【参考方案23】:

如果您更改从资产中打开的图像之一,似乎会发生这种情况。以下是一些有效的解决方案:

    不同的模拟器上运行应用程序 清理(CMD+SHIFT+K 和 CMD+ALT+SHIFT+K 都有) 将资产重新添加到项目中 重启 Mac 笑话:重启发电厂

【讨论】:

【参考方案24】:

您是否将资产文件夹复制到您的 Xcode 项目中?如果是这样,您可能有 2 个并且需要删除旧的。

【讨论】:

【参考方案25】:

我在 Xcode 10 上也遇到了同样的问题。尝试了一切,但没有任何效果。只是出于好奇尝试在 Xcode 9.4 中编译我的项目,但它再次失败,但这一次它给了我一个有效的错误。在我的情况下,这是因为启动图像资产中没有图像,并且作为旧项目的项目具有启动图像而不是启动屏幕故事板。建议在可用的较低 Xcode 中尝试该项目。

【讨论】:

【参考方案26】:

我设法通过“构建清理”、删除“DerivedData”文件夹并重新启动我的 Mac 来解决此问题。

【讨论】:

我不必重新启动计算机;我刚刚清理了 build 文件夹并删除了 Derived Data 文件夹。 DerivedData文件夹的作用是什么? 使用 Xcode 12.2 时遇到了这个编译错误,删除 DerivedData(中间文件的缓存)就可以了。

以上是关于命令 CompileAssetCatalog 失败,退出代码为非零的主要内容,如果未能解决你的问题,请参考以下文章

离子构建失败 CompileAssetCatalog

命令 /Applications/Xcode-beta.app/Contents/Developer/usr/bin/actool 失败,退出代码为 255

Ionic Capacitor 无法再生成可构建的 iOS 项目,CompileAssetCatalog 错误

CompileStoryboard 构建命令失败

Bash:如何测试 mkdir 命令失败?

当 BCP 失败时,Perl system() 命令不返回失败