Xcode 15 beta中GeneratedAssetSymbols出现ColorResource协议兼容错误求助
Xcode 15中ColorResource/ImageResource不遵守Equatable/Hashable协议的问题解答
问题原因
- Xcode 15早期beta版本的
GeneratedAssetSymbols代码生成工具存在bug,没有为ColorResource和ImageResource自动合成Equatable与Hashable协议的一致性实现——这两个结构体本质是资源标识符的包装类型,本应默认支持这两个协议。 - 若你手动为这两个结构体添加过扩展,但未正确实现
Equatable/Hashable的相关方法,也会触发该编译错误。
解决办法
- 升级Xcode到最新版本:苹果通常会在后续beta或正式版中修复这类代码生成问题,优先尝试更新Xcode。
- 手动添加协议扩展:如果暂时无法升级,可在
GeneratedAssetSymbols.swift之外的文件中添加以下扩展,利用Swift的自动合成功能补全协议实现:
extension ColorResource: Equatable, Hashable {} extension ImageResource: Equatable, Hashable {}
- 检查自定义扩展:若你之前为这两个结构体写过自定义的
Equatable/Hashable实现,确认实现逻辑正确,比如没有遗漏属性比较、方法签名无误。
内容的提问来源于stack exchange,提问作者Naka
相关产品推荐
相关产品推荐

