我打开了Xcode 15的新功能,现在我的构建失败了。GeneratedAssetSymbols大约有13k行,其中大约有1k行失败。
故障都在SwiftUI.Color
扩展中。像这样的一行:
static var gr150: SwiftUI.Color { .init(.gr150) }
Found this candidate
指向:
/// The "gr150" asset catalog color.
static var gr150: AppKit.NSColor {
#if !targetEnvironment(macCatalyst)
.init(resource: .gr150)
#else
.init()
#endif
}
和
/// The "gr150" asset catalog color resource.
static let gr150 = ColorResource(name: "gr150", bundle: resourceBundle)
有办法解决吗或者关闭GeneratedAssetSymbols?
这适用于macOS SwiftUI目标应用。
1条答案
按热度按时间xxe27gdn1#
我能想到的唯一原因是您在某个地方添加了自己的
Color.init
,这需要一个NSColor
,可能是因为您不想一直编写nsColor:
参数标签。例如这将导致
Color(.gr150)
是二义性的。它可以调用Color.init(ColorResource)
,也可以调用您自己的Color.init(NSColor)
。否则,我不知道为什么它是模棱两可的。您可以通过设置“Generate Swift Asset Symbol Extensions”设置来关闭生成。
这仍然会生成GeneratedAssetSymbols.swift,但只会生成
ColorResource
和ImageResource
,因此在使用颜色时仍然可以避免字符串文字。你只需要做:由于
NSColor.gr150
已经消失,第一个不再是模糊的。如果你只需要SwiftUI
Color
扩展,你仍然可以打开“生成Swift资产符号扩展”,只把“SwiftUI”放在“生成Swift资产符号框架支持”中。这样,您仍然会得到
Color.gr150
,并且由于NSColor.gr150
已经消失,因此生成的.init(.gr150)
将不再是二义性的。