You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

启用On-Demand Resources后无法构建watchOS应用,求解决方案

解决watchOS按需资源(ODR)编译报错的思路

你遇到的错误本质是Xcode不允许直接在Watch App/Extension目标中启用按需资源——即便官方文档说明watchOS支持ODR,实际配置也需要严格区分目标范围和资源托管方式。以下是具体解决步骤:

核心配置修正

  • 仅在iOS主应用目标中开启ENABLE_ON_DEMAND_RESOURCES,Watch App和Watch Extension目标必须关闭这个Build Setting。watchOS的按需资源依赖iOS主应用托管,无法独立启用。
  • 将标记为按需资源的.xcassets文件归属到iOS主应用目标,不要添加到Watch相关目标中。

资源传输方案

如果Watch端需要使用这些按需资源,通过Watch Connectivity框架实现:

  1. 在iOS主应用中完成ODR资源的下载
  2. 用WCSession将下载好的资源文件传输到Watch Extension
  3. Watch端接收后本地缓存使用

其他排查步骤

  • 升级Xcode到最新稳定版:旧版Xcode对watchOS ODR的支持存在兼容性bug,纯测试项目报错大概率和版本有关。
  • 清理构建缓存:执行Product > Clean Build Folder,手动删除DerivedData目录(路径见报错信息),再重新构建。
  • 检查Asset Catalog配置:确保iOS端的Asset Catalog中资源的按需标记正确,没有重复或冲突的设置。

报错代码重现

/* com.apple.actool.errors */
: error: Cannot enable on demand resources for the platform "watchOS". Consider disabling the ENABLE_ON_DEMAND_RESOURCES build setting.
/* com.apple.actool.compilation-results */
/Users/myMac/Library/Developer/Xcode/DerivedData/cuaaa-bfkiwkbyypwohfahhwdaqhzirchn/Build/Intermediates.noindex/cuaaa.build/Debug-watchos/cuaaa Watch App.build/assetcatalog_generated_info.plist
/Users/myMac/Library/Developer/Xcode/DerivedData/cuaaa-bfkiwkbyypwohfahhwdaqhzirchn/Build/Products/Debug-watchos/OnDemandResources/.watchkitapp.cucarobga-747198866748abb7711ab70510b9c29e.assetpack/Assets.car
/Users/myMac/Library/Developer/Xcode/DerivedData/cuaaa-bfkiwkbyypwohfahhwdaqhzirchn/Build/Products/Debug-watchos/cuaaa Watch App.app/Assets.car

Command CompileAssetCatalog failed with a nonzero exit code

内容的提问来源于stack exchange,提问作者Duck

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 23:24:58