ios - iOS应用数据加密后后台服务能否继续运行

标签 ios swift encryption background-service app-data

我正在尝试研究创建一个在后台运行后台服务的 iOS 应用程序。此后台服务需要访问应用程序数据。

我还希望对存储在设备上的应用程序数据进行加密。但它在 Apple Developer 页面的描述中表示,如果应用程序数据被加密,则只有在用户解锁手机时才能访问它。

这是否意味着如果后台服务以任何方式需要应用数据,则不允许访问它?

最佳答案

后台可用的访问权限取决于分配给数据的保护级别。默认情况下,NSFileProtectionCompleteUntilFirstUserAuthentication 应用于您的应用创建的数据。在设备重启后首次被用户解锁之前,此保护等级将不允许访问数据。首次解锁设备后,在设备下次重新启动之前都可以访问。

如果您需要您的应用能够在重启后第一次解锁之前访问数据,您可以应用 NSFileProtectionNone。请注意,即使应用此级别,iOS 设备上的所有数据都会被加密,但在这种情况下,解密数据所需的 key 存储在设备上,不需要用户的密码来生成解密 key 。

有关更多信息,请参阅 Apple 的 iOS Security GuideNSFileManager documentation

关于ios - iOS应用数据加密后后台服务能否继续运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35616066/

相关文章:

objective-c - NSArray 删除类型的最后一个对象?

c - 整数不作为对 Swift 中函数的引用传递

java - 如何在 mongodb 中加密 Spring Boot 应用程序数据

python - 如何使用 M2Crypto 包装器在 Python 中进行 3DES 加密?

ios - 使用 Swift + SpriteKit 将节点移动到手指

java - 使用php和java进行密码加密

ios - 在 init 中加载 NSArray 时访问错误

ios - 添加首选项包后 Theos 无法编译调整

ios - SpriteKit 得分是随机的

ios - NSFileManager 导致 SourceKit Service Terminated