命令 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 DeviceSupport
、DerivedData
和 Archives
,然后重新启动您的 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 失败,退出代码为非零的主要内容,如果未能解决你的问题,请参考以下文章
命令 /Applications/Xcode-beta.app/Contents/Developer/usr/bin/actool 失败,退出代码为 255