根据我的理解,要为Core Data启用数据加密,设备需要启用/打开Passcode,并将此密钥包含在addPersistentStoreWithType
:方法的可选字典中。我确实为我的设备启用了密码,并在项目中启用了此代码:
NSPersistentStore *store = [self.managedObjectContext.persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType
configuration:nil
URL:self.storeURL
options:@{ NSPersistentStoreUbiquitousContentNameKey : @"iCloudStore",
NSPersistentStoreFileProtectionKey : NSFileProtectionComplete}
error:&error];
但是当我使用名为Liya的软件(从Mac应用程序商店下载)直接打开sqlite数据文件时,我能够在sqlite数据库中看到数据。我使用iTunes文件共享将sqlite数据库文件从我的设备保存到我的Mac。
由于数据已加密,我是否应该无法直接使用Liya等工具查看数据?
答案 0 :(得分:2)
加密仅适用于设备。您通过iTunes或Xcode从设备复制的文件始终会被解密。将设备与iTunes配对时,它会从计算机上的手机中创建所有加密密钥的副本。这是必要的,因此iTunes可以在手机锁定时创建备份和同步。