在什么情况下应用程序可以在设备重启后但在用户解锁设备之前运行?

时间:2017-12-07 09:06:37

标签: ios iphone ios-background-mode

我们正在开发一款可以接收静音推送通知的应用。收到通知后,应用程序将被置于后台并执行一些代码。在此代码执行期间,应用程序需要访问受保护级别 kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly 保护的钥匙串中的项目。根据{{​​3}}(this SO post)和Does iOS start app in background after reboot if remote-notification defined in UIBackgroundModes and new push notification comes?,应用在设备重启后处于未运行状态,因此在用户将其启动后才能进入后台前景至少一次。

Apple's app lifecycle diagram

但是,Apple还提供了 kSecAttrAccessibleAlways 的保护级别。如果应用只能在首次启动后在后台运行,那么 kSecAttrAccessibleAlways 属性的目的是什么?用户首先必须解锁设备才能使应用程序能够在后台运行吗?在什么情况下,应用程序可以在设备重启后但在用户解锁设备之前运行? Apple还为应用程序的沙箱容器中的文件提供了保护级别 NSFileProtectionCompleteUntilFirstUserAuthentication 。在用户在重启后解锁设备之前,应用程序甚至能够在什么情况下尝试访问其文件?非常感谢您对此的任何见解,谢谢。

0 个答案:

没有答案