我正在尝试加密我的核心数据。
正如另一个问题中所建议的那样,我已经阅读了尼克哈里斯的以下帖子https://nickharris.wordpress.com/2010/07/14/core-data-and-enterprise-iphone-applications-protecting-your-data/ .
首先在我的设备上,我在设置中打开了我的密码。
然后在我的 appDelegate 中,当我创建我的 persistentStoreCoordinator 时,我将以下属性 NSFileProtectionComplete 添加到我的核心数据存储文件中,据我了解,这意味着当设备被密码锁定时,我的核心数据应该被加密或不可访问。
NSDictionary *fileAttributes = [NSDictionary dictionaryWithObject:NSFileProtectionComplete forKey:NSFileProtectionKey];
if (![[NSFileManager defaultManager] setAttributes:fileAttributes ofItemAtPath:[storeURL path] error:&error]) {
NSLog(@"Cant encrypt");
}
然而,完成所有这些之后,即使设备密码被锁定,我仍然可以使用 iExplorer 访问应用程序沙箱和包含 .sqllite 文件的文档文件夹,并且我可以将整个文件放到我的桌面上,并以完全未加密的方式查看它。
我错过了什么吗?