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

如何将Core Data迁移到SwiftData并转移至App Groups共享容器?

Core Data转SwiftData并迁移至App Groups容器问题
  • 已完成Core Data到SwiftData的数据结构演进迁移,现需将数据库迁移至App Groups容器,以支持Widget及后续iCloud同步
  • 旧应用的Core Data文件存储在Application Support目录下的Something.sqlite中
  • 已在Xcode配置好App Group签名权限,但目前无法读取旧Core Data数据,也无法通过SwiftData完成迁移(含结构演进)并将数据转移至App Groups共享容器
  • 苹果官方示例提到,拥有App Groups权限的应用会将数据存储在共享容器根目录,从无共享容器的版本升级时,SwiftData会自动复制现有存储至共享容器,但该自动方案对当前场景无效

当前使用的代码(指定自定义URL)

@main
struct MyAppName: App {
    let container: ModelContainer
    let dataUrl = URL.applicationSupportDirectory.appending(path: "Something.sqlite")
    
    init() {
        let configuration = ModelConfiguration(url: dataUrl)
        
        do {
            // Create SwiftData container with migration and custom URL pointing to legacy Core Data file
            container = try ModelContainer(
                for: Foo.self, Bar.self,
                migrationPlan: MigrationPlan.self,
                configurations: configuration)
        } catch {
            fatalError("Failed to initialize model container.")
        }
    }

    
    var body: some Scene {
        WindowGroup {
            ContentView()
        }
        .modelContainer(container)
    }
}

尝试过的带名称的ModelConfiguration代码

let fullSchema = Schema([Foo.self, Bar.self])
        
let configuration = ModelConfiguration("Something", schema: fullSchema)

该方式仅查找.store文件,无法复制Core Data内容


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 16:27:22