美好的一天
我有一个IOS消息传递应用程序。该应用程序存储在sqlite3数据库中接收和发送的消息,该应用程序还生成日志文件。这可能发生在前台或作为后台任务
当在IOS设备上禁用密码时,一切正常。创建日志文件,即使屏幕关闭且应用程序最小化,也可以在任何操作模式下成功插入数据库条目。
当使用密码锁定Iphone的屏幕时,应用程序似乎无法访问任何文件。我的日志文件指针保持为null,当我尝试添加到数据库时出现此错误:" sqlite_exec() - >磁盘i / o错误。"
禁用数据保护功能。我正在使用后台获取和voip功能来执行后台任务。处理数据库和日志文件的代码用C语言编写并单独编译。
由于
答案 0 :(得分:0)
iOS使用密码锁定手机时会对文件进行加密。因此,如果您确实需要在应用程序在后台运行时创建新文件,则需要将要创建文件夹的父文件夹标记为不受保护。
[[NSFileManager defaultManager] setAttributes:@{NSFileProtectionKey:NSFileProtectionNone} ofItemAtPath:[GlobalProvider tmpFolder] error:NULL];
[[NSFileManager defaultManager] setAttributes:@{NSFileProtectionKey:NSFileProtectionNone} ofItemAtPath:[GlobalProvider documentsFolder] error:NULL];