【问题标题】:UIFIlesharingEnabled exposes my private filesUIFIlesharingEnabled 暴露了我的私人文件
【发布时间】:2020-03-24 19:11:30
【问题描述】:

我在我的应用程序中启用了UIFilesharingEnabled 选项设置为 true,但这也暴露了我的文档文件和我的 sqlite.db 文件。

那么如何限制向用户或其他应用程序显示/访问我的数据库文件?

【问题讨论】:

    标签: ios swift permissions file-sharing


    【解决方案1】:

    您应该查看库目录部分Apple File System Basics。在那里您可以找到有关在何处编写应用文件的所有信息:

    图书馆

    这是所有非用户数据文件的顶级目录 文件。您通常将文件放在几个标准之一 子目录。 iOS 应用程序通常使用应用程序支持和 缓存子目录;但是,您可以创建自定义子目录。 将库子目录用于您不想暴露的任何文件 用户。您的应用不应将这些目录用于用户数据 文件。库目录的内容(除了 Caches 子目录)由 iTunes 和 iCloud 备份。为了 关于库目录及其常用的附加信息 使用的子目录,请参阅库目录存储 App-Specific 文件。

    您可以查看post 如何访问 App Bundle 中的 Library 目录

    【讨论】:

      【解决方案2】:

      可以通过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
      }()
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-06-19
        • 1970-01-01
        • 1970-01-01
        • 2018-09-28
        • 1970-01-01
        相关资源
        最近更新 更多