ios - iPhone锁定时,应用程序创建文件

标签 ios iphone data-protection

我正在努力解决这个问题。

我的应用需要在后台创建一些文件。它在临时文件夹中创建一个临时文件,然后在/ Documents中创建一个文件夹,其中包含一些文件。

当我的应用程序在调试中编译时,它可以工作。当我在发行版中对其进行编译时,并且仅当激活密码时,才创建第一组文件。第二组仅看到在Documents内部创建文件夹,但是不能创建文件,也不能在临时文件夹或Documents / newcreatedfolder中创建文件。

仅当在发行版中编译了应用程序并启用了密码时,才会发生这种情况。

我猜想这与数据保护和手机锁定时无法创建新文件有关。是否有一些权利可以使我的应用程序在后台和锁定状态下创建和写入新文件?

最佳答案

文件受标准iOS文件保护策略锁定,因此在手机锁定后,所有文件均被加密。我的解决方案是这样,因为我不需要这些文件的安全性:

[[NSFileManager defaultManager] setAttributes:@{NSFileProtectionKey:NSFileProtectionNone} ofItemAtPath:[GlobalProvider tmpFolder] error:NULL];
[[NSFileManager defaultManager] setAttributes:@{NSFileProtectionKey:NSFileProtectionNone} ofItemAtPath:[GlobalProvider documentsFolder] error:NULL];

关于ios - iPhone锁定时,应用程序创建文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33945484/

相关文章:

c# - 哪个NoSQL数据库可以保护数据?

ios - iOS 上的默认文件保护是什么以及如何更改它

ios - 如何在 SwiftUI 中按日期对核心数据项进行分组?

ios - Xcode 12 和 iOS 14 SDK

iphone - iOS:将 UIImageView 图像分解为形状并更改其颜色

iphone - 使用 Web 后端验证 iPhone 应用程序

ios - 为添加边框的 UIView 创建子类的步骤是什么?

ios - 如何在 XCode 6(最终版本)中添加桥接头

iphone - 如何获取 iOS6 可用的 SSID 列表

c# - 在 azure 上存储和使用现有数据保护 key