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

Xcode 15中GeneratedAssetSymbols出现“Ambiguous use of...”错误求助

Xcode 15 GeneratedAssetSymbols引发macOS SwiftUI项目构建失败的解决方法

开启Xcode 15的生成资源符号功能后,macOS SwiftUI项目出现构建失败问题:自动生成的GeneratedAssetSymbols文件(约13000行)中有近1000行报错,错误全部集中在SwiftUI.Color的扩展代码中。

示例报错代码:

static var gr150: SwiftUI.Color { .init(.gr150) }

编译器提示存在两个候选匹配项,导致类型歧义:
第一个是AppKit.NSColor的扩展属性:

/// The "gr150" asset catalog color.
static var gr150: AppKit.NSColor {
    #if !targetEnvironment(macCatalyst)
        .init(resource: .gr150)
    #else
        .init()
    #endif
}

第二个是ColorResource的静态常量:

/// The "gr150" asset catalog color resource.
static let gr150 = ColorResource(name: "gr150", bundle: resourceBundle)

修复构建错误

方法1:明确指定资源类型

修改GeneratedAssetSymbols中报错的SwiftUI.Color扩展代码,将模糊的.gr150明确指定为ColorResource类型,消除歧义:

static var gr150: SwiftUI.Color { .init(ColorResource.gr150) }

注意:该文件为自动生成,清理构建后会被覆盖,建议升级至Xcode 15最新补丁版本(该问题大概率是Xcode初始版本的bug)以彻底解决。

方法2:通过NSColor转换初始化

借助已有的NSColor扩展属性来初始化SwiftUI.Color,绕开类型歧义问题:

static var gr150: SwiftUI.Color { .init(NSColor.gr150) }

关闭GeneratedAssetSymbols功能

如果暂时不需要该功能,可按以下步骤操作:

  1. 选中项目对应的Target,进入Build Settings标签页
  2. 在搜索框输入Generate Asset Symbols,找到该配置项
  3. 将其值修改为NO

针对Swift Package Manager管理的项目,需在Package.swift的Target配置中添加参数:

.target(
    name: "YourTargetName",
    dependencies: [],
    generateAssetSymbols: false
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 15:45:04