【问题标题】:How to open sqlite database when app runs in background in ios当应用程序在ios中在后台运行时如何打开sqlite数据库
【发布时间】:2014-12-09 11:32:30
【问题描述】:

我的应用程序在后台捕获位置数据并保存在 sqlite 数据库中。当设备未锁定时它运行良好,但是当设备被锁定时我无法访问 sqlite 数据库。它总是给我错误代码为 SQLITE_AUTH(错误代码:23)。 我尝试了以下选项:

  1. 从功能中禁用数据保护。(不起作用)
  2. 根据Failed to create SQLite3 database with file protection in iOS,我尝试了以下代码:

sqlite3_open_v2([dbPath UTF8String], &myDatabase, SQLITE_OPEN_READWRITE|SQLITE_OPEN_CREATE|SQLITE_OPEN_FILEPROTECTION_COMPLETE, NULL)

但它仍然无法正常工作。

你能帮我吗,如何在后台访问sqlite数据库。

【问题讨论】:

    标签: ios database sqlite


    【解决方案1】:

    您需要通过 iTunesconnect 从您的应用启用Data Protection。

    1.为您的应用启用数据保护。例如,

    2。将下面的file protection 键和值添加到您的 plist 或授权文件中,

    <key>com.apple.developer.default-data-protection</key>
    <string> NSFileProtectionCompleteUntilFirstUserAuthentication</string>
    

    类型必须与您从 iTunes 服务器设置的功能匹配。

    3.重新构建并测试问题是否已解决


    文件数据保护 除了 iOS 设备内置的硬件加密功能,Apple 使用一种称为数据保护的技术来进一步保护存储在闪存中的数据 设备上的内存。数据保护允许设备响应常见的 诸如来电之类的事件,还可以实现高级别的加密 用于用户数据。关键系统应用程序,例如信息、邮件、日历、通讯录、 照片和健康数据值默认使用数据保护,第三方 安装在 iOS 7 或更高版本上的应用程序会自动获得此保护。 数据保护是通过构建和管理层次结构来实现的 密钥,并建立在每个内置的硬件加密技术之上 iOS 设备。数据保护通过分配每个文件来控制每个文件 归档到班级;可访问性由类键是否已被确定 解锁。随着 Apple 文件系统 (APFS) 的出现,文件系统是 现在能够将键进一步细分为每个范围的基础(a的部分 文件可以有不同的键)。在File Data Protection 部分中查找详细信息。

    【讨论】:

      猜你喜欢
      • 2017-12-25
      • 1970-01-01
      • 2020-12-15
      • 2015-05-02
      • 1970-01-01
      • 2014-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多