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

Posted

技术标签:

【中文标题】Ionic Capacitor 无法再生成可构建的 iOS 项目,CompileAssetCatalog 错误【英文标题】:Ionic Capacitor can no longer produce a buildable iOS project, CompileAssetCatalog error 【发布时间】:2020-06-15 23:01:03 【问题描述】:

Ionic 6.5.0 / Capacitor 2.2.0 存在棘手的构建问题

我不久前制作了这个应用程序,但今天它不会构建。经过多次毫无结果的更新/清理/构建,我删除了ios 目录并重新添加了它。

ionic cap add ios ionic cap sync

更新,删除DerivedData,干净的构建,同样的错误:

CompileAssetCatalog /Users/me/Library/Developer/Xcode/DerivedData/App-ayobzjywexbfvjdrynzhsnownnyr/Build/Products/Debug-iphoneos/App.app /Users/me/Projects//MyProject/ios/App/App/Assets.xcassets (in target 'App' from project 'App')
    cd /Users/me/Projects//MyProject/ios/App
    /Applications/Xcode.app/Contents/Developer/usr/bin/actool --output-format human-readable-text --notices --warnings --export-dependency-info /Users/me/Library/Developer/Xcode/DerivedData/App-ayobzjywexbfvjdrynzhsnownnyr/Build/Intermediates.noindex/App.build/Debug-iphoneos/App.build/assetcatalog_dependencies --output-partial-info-plist /Users/me/Library/Developer/Xcode/DerivedData/App-ayobzjywexbfvjdrynzhsnownnyr/Build/Intermediates.noindex/App.build/Debug-iphoneos/App.build/assetcatalog_generated_info.plist --app-icon AppIcon --compress-pngs --enable-on-demand-resources YES --filter-for-device-model iPhone10,1 --filter-for-device-os-version 13.5.1 --sticker-pack-identifier-prefix com.prosc.itineris.sticker-pack. --development-region en --target-device iphone --target-device ipad --minimum-deployment-target 11.0 --platform iphoneos --product-type com.apple.product-type.application --compile /Users/me/Library/Developer/Xcode/DerivedData/App-ayobzjywexbfvjdrynzhsnownnyr/Build/Products/Debug-iphoneos/App.app /Users/me/Projects//MyProject/ios/App/App/Assets.xcassets

2020-06-15 15:40:01.929 ibtoold[73405:1839106] DEBUG: Added to environment: 
    TMPDIR = "/var/folders/g8/hc3lzhqn75d1ms9dzt46s7nw0000gn/T/E2DC0A8E-13DD-4566-A0E9-59C812831E2A";

Command CompileAssetCatalog failed with a nonzero exit code

如果我从终端运行此命令,它似乎以255 状态退出,没有错误/警告/通知。

我在 XCode 中尝试了推荐的更新,但在失败之前我在 Xcode 中看到了一些错误:

/Users/me/Projects/MyProject/node_modules/@capacitor/ios/Capacitor/Capacitor/Plugins/Network/Reachability.swift:207:4:非特定平台的“可用”属性中的意外版本号“* ' /Users/me/Projects/MyProject/node_modules/@capacitor/ios/Capacitor/Capacitor/Plugins/Permissions.swift:39:5:开关涵盖已知情况,但“AVAuthorizationStatus”可能有其他未知值,可能已添加在未来的版本中 /Users/me/Projects/MyProject/node_modules/@capacitor/ios/Capacitor/Capacitor/CAPBridge.swift:375:29:强制“字符串?”类型的隐式不可包装值到 'Any' 不会打开可选 /Users/me/Projects/MyProject/node_modules/@capacitor/ios/Capacitor/Capacitor/CAPPlugin.m:6:17:未找到“shouldOverrideLoad:”的方法定义

但是,我不认为这些是导致错误的原因。有什么建议/见解吗?

【问题讨论】:

【参考方案1】:

解决方案是通过从 App Store 安装新版本将 XCode 更新到 11.5。我的 XCode 版本不是从应用商店安装的。

在更新了额外的 XCode 工具后,此工具从 11.2.1 更新到了 11.5

这与 Ionic/Capacitor 无关,构建一个全新的原生 iOS 应用程序会出现同样的错误。

【讨论】:

以上是关于Ionic Capacitor 无法再生成可构建的 iOS 项目,CompileAssetCatalog 错误的主要内容,如果未能解决你的问题,请参考以下文章

将 Capacitor 集成到 Ionic 项目后无法在 Xcode 中运行

Ionic4 watchPosition 和 getCurrentPosition 的地理位置与 Ionic/Capacitor 不准确

如何使用 Ionic Capacitor 启用捏缩放?

在 Android 模拟器上运行 Ionic4/Capacitor 时如何调试 .ts 文件

将 Ionic Native / Cordova 插件与 Ionic (React) & Capacitor 一起使用的正确方法是啥?

从 Android 意图打开 Ionic (Capacitor) 应用程序中的特定页面