当应用程序在后台调用 addPersistentStoreWithType 时,我的 sqlite
文件有时不可用,我收到此错误:
[Model createPersistentStoreCoordinatorWithStoreURL:] line 387 $ sqlite encryption state NSFileProtectionCompleteUntilFirstUserAuthentication error : Error Domain=NSCocoaErrorDomain Code=256 "The operation couldn’t be completed. (Cocoa error 256.)" UserInfo=0x1560e540 {NSUnderlyingException=authorization denied, NSSQLiteErrorDomain=23}
我发现这是因为文件仍然受到保护(默认为 NSFileProtectionCompleteUntilFirstUserAuthentication
,因此在用户重启后第一次解锁设备后, protected 数据可用)。我觉得这行为不正确,因为我有大量的崩溃,我无法想象有很多人在野外重启后仍然锁定他们的设备。
因此,我现在正在添加我的持久存储协调器,并像这样调整配置
NSDictionary *options = @{
NSMigratePersistentStoresAutomaticallyOption : @YES,
NSInferMappingModelAutomaticallyOption : @YES,
NSPersistentStoreFileProtectionKey : NSFileProtectionNone
};
NSPersistentStoreFileProtectionKey
,这会破坏 sqlite(/内的数据)吗?NSFileProtectionNone
时是否发现安全问题?关于ios - 为现有 sqlite 上的持久存储管理器更改 NSPersistentStoreFileProtectionKey,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36450555/
欢迎光临 OGeek|极客世界-中国程序员成长平台 (https://ogeek.cn/) | Powered by Discuz! X3.4 |