我正在尝试为我的核心数据文件启用数据保护。这就是我所做的。
修改后的持久存储协调器getter
let coordinator = NSPersistentStoreCoordinator(managedObjectModel: self.managedObjectModel)
let url = self.applicationDocumentsDirectory.URLByAppendingPathComponent("SingleViewCoreData.sqlite")
var failureReason = "There was an error creating or loading the application's saved data."
do {
try coordinator.addPersistentStoreWithType(NSSQLiteStoreType, configuration: nil, URL: url, options: [NSSQLitePragmasOption : ["journal_mode" : "DELETE"], NSPersistentStoreFileProtectionKey : NSFileProtectionComplete])
}
运行代码并在设备上安装应用程序。
如果这对我有帮助,我正在使用免费的配置文件。
我在这做什么错?为什么这个.sqlite文件没有加密?
请帮忙。提前谢谢。
答案 0 :(得分:0)
由于设备所连接的计算机是受信任的计算机,因此即使设备被锁定,它也可以读取应用程序的容器。我知道有两种方法可以测试sqlite文件是否已加密:
1)越狱设备。然后通过SSH进入您的设备,并在设备锁定时尝试读取sqlite文件(即“ cat sqlite_file”)。如果文件已加密,则将无法读取。
2)您可以检查sqlite文件上的属性,并确保正确设置selected_unit_req
属性:
rqst