升级Xcode 15 Beta3后Vision Pro项目@Observable模型报错求助
Xcode 15 Beta3 构建Vision Pro项目时@Observable宏报错的解决办法
遇到的两个报错:
Expansion of macro 'ObservationTracked' produced an unexpected 'init' accessor
External macro implementation type 'ObservationMacros.ObservableMacro' could not be found for macro 'Observable()'; the type must be public and provided by a macro target in a Swift package, or via '-plugin-path' or '-load-plugin-library'
试试这些解决步骤:
- 清缓存+重启Xcode
先按Cmd + Shift + K清理项目,再按Cmd + Option + Shift + K清理构建文件夹,彻底关闭Xcode后重新打开并构建项目,很多Beta版本的宏解析bug都能通过这个方式解决。 - 检查Swift Package的宏配置
如果项目依赖了包含Observation宏的第三方Swift包,确认:- 宏目标中的
ObservationMacros.ObservableMacro类型是public的 - Package.swift配置文件里,宏目标已被正确声明为
macro类型,且主目标已依赖该宏目标
- 宏目标中的
- 调整@Observable类的代码写法
避免在属性定义中使用复杂表达式初始化,把初始化逻辑挪到init方法中;同时尽量明确声明属性类型,不要让Swift进行模糊的类型推断,这可能会触发宏的解析异常。 - 更换Xcode版本
这属于Beta版本的已知bug,要么回退到Xcode 15 Beta2版本,要么等待Apple发布Xcode 15 Beta4来修复该问题。
内容的提问来源于stack exchange,提问作者Clément Cardonnel
相关产品推荐
相关产品推荐

