Swift 包中的 CoreData 模型

CoreData Model within Swift Package

我正在尝试将 CoreData 模型放入 Swift 包中以从我的主代码库中提取我的模型代码/类。

我已完成以下操作以重现我从头开始遇到的问题:

现在 - 当我尝试在 Xcode 中打开 Model.xcdatamodelId 文件时,它只显示一个“版本”图标(见屏幕截图),而在项目中创建核心数据模型文件或框架将允许我编辑模型。

第二个/后续问题是我将如何正常扩展代码-gem'd 模型文件?我将如何加载该模型定义(通常我会使用 Bundle ID 和模型文件名)

我已尝试将模型文件添加到 Package.swift 文件的资源数组(使用 .process 和使用 .copy),如本页所述:https://developer.apple.com/documentation/swift_packages/bundling_resources_with_a_swift_package

或者更笼统地说,这可能吗? (这篇文章https://ishabazz.dev/blog/2020/7/5/using-core-data-with-swift-package-manager似乎在暗示像这样封装核心数据模型是可以的)

(我用的是Xcode12.4)

您需要在一个普通的 Xcode 项目中创建您的 Core Data 模型,然后您可以创建您的包并将模型拖到其中。 (即使没有明确描述,如果您仔细看,这也是链接文章中所做的)。

我认为最好的办法是为您的实体手动生成源代码文件并将它们添加到您的包中。您使用 Bundle 加载模型,但您使用 Bundle.module

而不是 Bundle.main