В каких случаях приложение может запускаться после перезагрузки устройства, но до того, как пользователь разблокирует его?
Мы разрабатываем приложение, которое может получать тихие push-уведомления. После получения уведомлений приложение переводится в фоновый режим и выполняет некоторый код. Во время выполнения этого кода приложению требуется доступ к элементу в цепочке для ключей, который защищен уровнем защиты kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly. Согласно этой публикации SO ( iOS запускает приложение в фоновом режиме после перезагрузки, если в UIBackgroundModes определены удаленные уведомления и появляются новые push-уведомления?) И диаграмму жизненного цикла приложения Apple, после перезагрузки устройства приложение находится в нерабочем состоянии и поэтому может не следует помещать в фон, пока пользователь не запустит его на передний план хотя бы один раз.
Тем не менее, Apple также обеспечивает уровень защиты kSecAttrAccessibleAlways. Если приложение может работать только в фоновом режиме после первого запуска, какова цель атрибута kSecAttrAccessibleAlways? Разве пользователю сначала не нужно было разблокировать устройство, чтобы приложение могло работать в фоновом режиме? В каких случаях приложения могут запускаться после перезагрузки устройства, но до того, как пользователь разблокирует его? Apple также предоставляет уровень защиты NSFileProtectionCompleteUntilFirstUserAuthentication для файлов в контейнере песочницы приложения. В каких ситуациях приложения смогут пытаться получить доступ к своим файлам до того, как пользователь разблокирует устройство после перезагрузки? Любое понимание этого очень ценится, спасибо.