Я работаю над интеграцией touchID в свое приложение. Процесс был довольно простым, но даже с использованием моих фиктивных данных требуется около 5 секунд после аутентификации моего отпечатка пальца, прежде чем он выполнит свою задачу.
Вот мой код:
func requestFingerprintAuthentication() {
let context = LAContext()
var authError: NSError?
let authenticationReason: String = "Login"
if context.canEvaluatePolicy(LAPolicy.DeviceOwnerAuthenticationWithBiometrics, error: &authError) {
context.evaluatePolicy(LAPolicy.DeviceOwnerAuthenticationWithBiometrics, localizedReason: authenticationReason, reply: {
(success: Bool, error: NSError?) -> Void in
if success {
println("successfull signin with touchID")
self.emailInputField.text = "[email protected]"
self.passwordInputField.text = "password"
self.signIn(self.signInButton)
} else {
println("Unable to Authenticate touchID")
}
})
}
}
даже с фиктивными данными это занимает слишком много времени.
Когда я обычно вхожу в систему, вводя адрес электронной почты и пароль в поля ввода, функция signIn() запускается мгновенно.
Чтобы понять, не в этом ли проблема. Я попытался заменить это двумя строками, которые просто приводят меня к правильному viewController. Но это все еще занимает несколько секунд после того, как он аутентифицирует мой отпечаток пальца.
Я знаю, что дело не в телефоне и не в touchID. Потому что он немедленно запускает мой println("успешный вход с touchID"). Это то, что происходит после этого, что по какой-то причине требуется несколько секунд для его запуска?
Любая помощь, объясняющая это, будет принята с благодарностью!