Good day
我有一个 IOS 消息应用程序。该应用程序将接收和发送的消息存储在 sqlite3 数据库中,并且该应用程序还会生成日志文件。这可能发生在前台或后台任务中
当在 IOS 设备上禁用密码时,一切工作正常。即使屏幕关闭且应用程序最小化,也可以在任何操作模式下创建日志文件并成功插入数据库条目。
当 iPhone 的屏幕被密码锁定时,该应用程序似乎无法访问任何文件。我的日志文件指针保持为空,当我尝试添加到数据库时出现此错误:“sqlite_exec() -> 磁盘 I/O 错误。”
数据保护功能被禁用。我正在使用后台获取和 VoIP 功能来执行后台任务。处理数据库和日志文件的代码是用 C 编写的并单独编译。
Thanks
当手机使用密码锁定时,iOS 会对文件进行加密。因此,如果您确实需要在应用程序在后台运行时创建新文件,则需要将要在其中创建文件夹的父文件夹标记为不受保护。
[[NSFileManager defaultManager] setAttributes:@{NSFileProtectionKey:NSFileProtectionNone} ofItemAtPath:[GlobalProvider tmpFolder] error:NULL];
[[NSFileManager defaultManager] setAttributes:@{NSFileProtectionKey:NSFileProtectionNone} ofItemAtPath:[GlobalProvider documentsFolder] error:NULL];
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)