【发布时间】:2020-03-24 19:11:30
【问题描述】:
我在我的应用程序中启用了UIFilesharingEnabled 选项设置为 true,但这也暴露了我的文档文件和我的 sqlite.db 文件。
那么如何限制向用户或其他应用程序显示/访问我的数据库文件?
【问题讨论】:
标签: ios swift permissions file-sharing
我在我的应用程序中启用了UIFilesharingEnabled 选项设置为 true,但这也暴露了我的文档文件和我的 sqlite.db 文件。
那么如何限制向用户或其他应用程序显示/访问我的数据库文件?
【问题讨论】:
标签: ios swift permissions file-sharing
您应该查看库目录部分Apple File System Basics。在那里您可以找到有关在何处编写应用文件的所有信息:
图书馆
这是所有非用户数据文件的顶级目录 文件。您通常将文件放在几个标准之一 子目录。 iOS 应用程序通常使用应用程序支持和 缓存子目录;但是,您可以创建自定义子目录。 将库子目录用于您不想暴露的任何文件 用户。您的应用不应将这些目录用于用户数据 文件。库目录的内容(除了 Caches 子目录)由 iTunes 和 iCloud 备份。为了 关于库目录及其常用的附加信息 使用的子目录,请参阅库目录存储 App-Specific 文件。
您可以查看post 如何访问 App Bundle 中的 Library 目录
【讨论】:
可以通过libraryDirectory来实现。
private static var __once: NSString = {
let documentFolderPath = NSSearchPathForDirectoriesInDomains(
.libraryDirectory,
.userDomainMask,
true)[0] as String
let databaseFile = "DATABASE_FILE_NAME"
return "\(documentFolderPath)\(databaseFile)" as NSString
}()
【讨论】: