首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将核心数据文件存储在专用文件夹中

如何将核心数据文件存储在专用文件夹中
EN

Stack Overflow用户
提问于 2018-10-22 09:54:48
回答 1查看 202关注 0票数 0

我已经通过Adhoc发行版向用户发布了iOS应用程序。用户已经安装了应用程序,他们可以查看文件,如sqlite文件,图像存储在文档目录。这可以通过第三方应用程序(如iExplorer、iMazing )进行访问。

问题:

1.是否可以将数据存储在私有目录中,这些数据不能被其他来源或软件访问。

2.是否有任何库对核心数据进行加密,其他应用程序不应该读取这些库?

我已经尝试过使用,以下解决方案,,但这无助于解决方法。

1.使用了数据保护属性NSFileProtectionComplete和NSFileProtectionCompleteUnlessOpen。但是,即使设备被锁定,数据仍然是可读的。

2.我尝试过SQLCipher库对数据进行加密,但它不支持核心数据框架。

请给我建议,谢谢。

EN

回答 1

Stack Overflow用户

发布于 2018-10-22 16:20:17

您应该使用Application目录来安全地存储DB文件。您可以获得该文件夹的路径如下:

代码语言:javascript
复制
let appSupportDirURL = FileManager.default.urls(for:.applicationSupportDirectory, in:.userDomainMask).last

但是,您需要在第一次使用do/catch中创建该目录:

代码语言:javascript
复制
try FileManager.default.createDirectory(at: appSupportDirURL, withIntermediateDirectories: true, attributes: nil)

现在将您的DB文件名添加到该路径:

代码语言:javascript
复制
let storeURL = appSupportDirURL.appendingPathComponent("MyDatabaseName")

最后,当您在您的addPersistentStore(ofType:configurationName:at:options:)上调用NSPersistentStoreCoordinator来创建磁盘上的DB时,请使用该url。

我不知道有任何库可以帮助您加密整个Core Data DB,但我实际上并不认为一旦您的DB文件无法访问--至少对于具有常规安全性要求的应用程序,您不需要这样做。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52926601

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档