如何隐藏 SQLite 数据库文件以便在 iTunes 文件共享中看不到它们

How to hide SQLite db files so they are not seen in iTunes file sharing

我的应用程序启用了文件共享,因此,当您在 iTunes 中查看文档文件夹时,Core Data sqlite 文件就在那里等待用户摆弄。

我发现了一些关于此的讨论,但令人惊讶的是,似乎没有人解决我的担忧。

有人说 'move' 将它们放到库文件夹中 - 在自定义子目录中,还有人说只需重命名文件并在每个文件前加一个句点。

这两个选项听起来不错,但这些都是必不可少的 OS 文件! 所以我的第一个问题是,如果你做了这些事情中的任何一个(使用 NSFileManager.defaultManager() - 我想),应用程序会在之后自动找到它们吗? ...或者是否有特定的 'way' 您可以在其中执行(其中之一)...以便应用程序随后找到它们?

任何回复,如果您能演示使用 Swift 而不是 Objective C,我们将不胜感激!谢谢,:)

想通了: 对于任何想知道同样事情(我已经看到很多人在做)的人,

在我的应用委托中 > 在 'persistentStoreCoordinator' 惰性变量中, 我更改了以下代码行:

let url = self.applicationDocumentsDirectory.URLByAppendingPathComponent("MyAppName.sqlite")

到下面两行代码:

let library = NSFileManager.defaultManager().URLsForDirectory(.LibraryDirectory, inDomains: .UserDomainMask)[0] as NSURL
let url = libary.URLByAppendingPathComponent("MyAppName.sqlite")

这将是 Swift 3 / 4 的语法:

    let library = FileManager.default.urls(for: .libraryDirectory, in: .userDomainMask)[0] as NSURL
    let url = library.appendingPathComponent("MyAppName.sqlite")