我正在尝试研究创建一个在后台运行后台服务的 iOS 应用程序。此后台服务需要访问应用程序数据。
我还希望对存储在设备上的应用程序数据进行加密。但它在 Apple Developer 页面的描述中表示,如果应用程序数据被加密,则只有在用户解锁手机时才能访问它。
这是否意味着如果后台服务以任何方式需要应用数据,则不允许访问它?
最佳答案
后台可用的访问权限取决于分配给数据的保护级别。默认情况下,NSFileProtectionCompleteUntilFirstUserAuthentication
应用于您的应用创建的数据。在设备重启后首次被用户解锁之前,此保护等级将不允许访问数据。首次解锁设备后,在设备下次重新启动之前都可以访问。
如果您需要您的应用能够在重启后第一次解锁之前访问数据,您可以应用 NSFileProtectionNone
。请注意,即使应用此级别,iOS 设备上的所有数据都会被加密,但在这种情况下,解密数据所需的 key 存储在设备上,不需要用户的密码来生成解密 key 。
有关更多信息,请参阅 Apple 的 iOS Security Guide在NSFileManager documentation
关于ios - iOS应用数据加密后后台服务能否继续运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35616066/