Я работаю над интеграцией поддержки Touch ID в приложение, над которым я работаю. Однако он действует очень несовместимо. Одной из наиболее распространенных проблем, которые я вижу на свежий запуске приложения оно работает, как ожидалось, но затем на фоновом режиме приложения, и приведение его на передний план я получаю сообщение об ошибке назад отОшибка IOS 8 Touch ID «Требуется взаимодействие с пользователем».
evaluatePolicy:localizedReason:reply:
Это не даже сделать много смысла (я никогда не видел предупреждения touchid)
Error Domain=com.apple.LocalAuthentication Code=-1004 "User interaction is required." UserInfo=0x171470a00 {NSLocalizedDescription=User interaction is required.}
Я попытался представления предупреждение touchid, когда приложение уже запущено, когда его только на передний план, кажется, не имеет значения. Его сломал каждый раз после первого запуска приложения.
Кто-нибудь еще сталкивается с этим?
Для справки, вот код, я использую:
if (_useTouchId && [LAContext class]) {
LAContext *myContext = [[LAContext alloc] init];
NSError *authError = nil;
if ([myContext canEvaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics error:&authError]) {
_didPresentTouchId = YES;
[myContext evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics localizedReason:@"Use your Touch ID to open *****" reply:^(BOOL success, NSError *error) {
dispatch_async(dispatch_get_main_queue(),^{
if (success) {
_isClosing = YES;
[self hide];
if (_successBlock) {
_successBlock();
}
}
else if (error && error.code != -2 && error.code != -3 && error.code != -1004) {
[[[UIAlertView alloc] initWithTitle:@"Error" message:@"Authentication failed, please enter your Pin" delegate:self cancelButtonTitle:@"Dismiss" otherButtonTitles:nil] show];
}
else {
if (error) {
DDLogError(@"TouchID error: %@", error.description);
}
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, .6 * NSEC_PER_SEC), dispatch_get_main_queue(),^{
[self keyboardButtonTouched];
});
}
});
}];
}
}
получение этого тоже. Действительно анонимный – gallileo
У меня такая же ошибка, но в моем случае, даже когда приложение уже активно и на переднем плане. Я работаю над фреймворком, который используется другим приложением, но мой код отлично работает, когда я пробовал его в автономном проекте. У меня есть код, размещенный в viewDidAppear исходного контроллера, но он всегда приводит к ошибке. – schystz
@schystz У меня такое же ... Клянусь, это после того, как я сменил идентификатор пакета ... Вы нашли решение? !! – maxisme