扩展总是想迁移核心数据存储,但总是失败
Extension always wants to migrate core data store and alway fails
我正在尝试编写一个缩略图提供程序扩展(在 macOS 上),它访问主应用程序的核心数据存储,通过应用程序组共享,以查找图像作为图标缩略图的基础。在我将一个属性添加到 Core Data 模型之前,这一直很好用。现在扩展总是崩溃 An error occurred during persistent store migration
和 attempt to write a readonly database
.
创建新的默认模型版本并删除核心数据存储没有帮助。不知何故缩略图扩展仍然认为主应用程序编写的商店使用较早的模型,这是没有意义的。
如果我将 shouldMigrateStoreAutomatically
设置为 NO,我会得到 The managed object model version used to open the persistent store is incompatible with the one that was used to create the persistent store.
如果我在 NSPersistentStoreDescription 上设置 readOnly = YES
,我会得到 The file couldn’t be saved because you don’t have permission.
,我认为这可能是一个并发问题,由许多缩略图提供程序线程试图同时迁移所有商店引起。
编辑:原始代码在这里:https://github.com/angstsmurf/spatterlight/blob/quicklook/SpatterlightThumbnails/ThumbnailProvider.m
好的,我让这个工作了,但我不确定如何。
我做的一些事情:清理构建文件夹,从我的硬盘中删除主应用程序的所有副本,构建它的新发布版本,将其放入应用程序,在 Xcode 要求我在构建缩略图提供程序扩展后选择一个应用程序 运行。那仍然没有用,但之后我在 Xcode.
中构建和 运行ning 时不再遇到任何商店迁移错误
所以基本上问题似乎是 Xcode 选择了主应用程序的旧版本到 运行 以及扩展,这创建了旧版本的核心数据存储。或者旧商店仍然缓存在某个地方。仅清理构建文件夹不足以解决此问题。
我正在尝试编写一个缩略图提供程序扩展(在 macOS 上),它访问主应用程序的核心数据存储,通过应用程序组共享,以查找图像作为图标缩略图的基础。在我将一个属性添加到 Core Data 模型之前,这一直很好用。现在扩展总是崩溃 An error occurred during persistent store migration
和 attempt to write a readonly database
.
创建新的默认模型版本并删除核心数据存储没有帮助。不知何故缩略图扩展仍然认为主应用程序编写的商店使用较早的模型,这是没有意义的。
如果我将 shouldMigrateStoreAutomatically
设置为 NO,我会得到 The managed object model version used to open the persistent store is incompatible with the one that was used to create the persistent store.
如果我在 NSPersistentStoreDescription 上设置 readOnly = YES
,我会得到 The file couldn’t be saved because you don’t have permission.
,我认为这可能是一个并发问题,由许多缩略图提供程序线程试图同时迁移所有商店引起。
编辑:原始代码在这里:https://github.com/angstsmurf/spatterlight/blob/quicklook/SpatterlightThumbnails/ThumbnailProvider.m
好的,我让这个工作了,但我不确定如何。
我做的一些事情:清理构建文件夹,从我的硬盘中删除主应用程序的所有副本,构建它的新发布版本,将其放入应用程序,在 Xcode 要求我在构建缩略图提供程序扩展后选择一个应用程序 运行。那仍然没有用,但之后我在 Xcode.
中构建和 运行ning 时不再遇到任何商店迁移错误所以基本上问题似乎是 Xcode 选择了主应用程序的旧版本到 运行 以及扩展,这创建了旧版本的核心数据存储。或者旧商店仍然缓存在某个地方。仅清理构建文件夹不足以解决此问题。