用途:用于排查 SwiftData 迁移失败,包括应用启动崩溃、关系未保留、数据丢失,以及模拟器正常但真机失败等情况。核心观点是多数迁移失败源于配置问题,如 VersionedSchema 缺少模型、关系 inverse 缺失或未测试迁移路径,而非框架缺陷。
主要能力与思路:提供红旗信号识别(如“Expected only Arrays for Relationships”“incompatible model”“Failed to fulfill faulting”、模拟器可用而真机崩溃、迁移后数据或关系丢失),并给出强制首步:确认错误类型、核对 Schema 版本与迁移计划、检查所有模型是否纳入 VersionedSchema、检查关系 inverse、启用调试日志 -com.apple.coredata.swiftdata.debug 1。
使用方式:先按错误类型定位模式,例如多对多关系缺少 inverse、Schema 版本不匹配、数据丢失时误用 didMigrate、未在真机测试、关系未预取。修复通常是在两侧补 @Relationship(inverse:)、将数据转换逻辑放在 willMigrate 并保存、在 schemas 数组补齐所有版本、用 relationshipKeyPathsForPrefetching 预取关系。验证时可核对迁移前后记录数、抽查记录、检查关系与孤儿数据。
适用场景:SwiftData 项目在版本升级、真机发布前验证迁移路径时。限制:资料未提供官方文档、支持版本范围、价格与平台信息;示例基于 iOS 17 环境,具体行为需以实际项目验证。