Ответ 1
Я предполагаю, что проблема связана с тем, что у вас есть код в applicationWillResignActive
и applicationDidBecomeActive
, который влияет на контроллер вида, который запрашивает проверку идентификатора Touch ID, и что он устанавливает сложный цикл.
Вам нужно переместить эти вызовы на applicationDidEnterBackground
и applicationWillEnterForeground
, потому что они не вызывается, когда вызывается механизм Touch ID.
Чтобы объяснить последовательность, когда ваше приложение запускается, выполняется следующая последовательность:
-
applicationDidBecomeActive
- .. другие вещи, которые делает ваше приложение.
- Ваше приложение вызывает Touch ID, который запускает:
-
applicationWillResignActive
... Ваше приложение отключено до тех пор, пока пользователь не проверит отпечаток пальца (сбой или успешно)...
-
applicationDidBecomeActive
Если у вас есть код в applicationDidBecomeActive
-or- applicationWillResignActive
, который влияет на Touch ID, вы создадите бесконечный цикл или, что еще хуже, вы создадите код, который пронизан флагами и особыми случаями.
Вместо этого вы должны вызвать Touch ID в двух случаях:
-
Когда ваше приложение запускается (обычно в
didFinishLaunchingWithOptions
) -
Когда вызывается ваше приложение
applicationWillEnterForeground
.