Ich habe daran gearbeitet, Touch ID-Unterstützung in eine App zu integrieren, an der ich gerade arbeite. Es ist jedoch sehr inkonsequent. Einer der häufigsten Fragen, die ich sehe ist auf einem neuen App-Start es wie erwartet funktioniert, aber dann auf die App Hintergrund versetzen, und es in den Vordergrund zu bringen Ich erhalte eine Fehlermeldung zurück voniOS 8 Touch ID-Fehler "Benutzerinteraktion ist erforderlich."
evaluatePolicy:localizedReason:reply:
Es nicht einmal tut machen sehr viel Sinn
Error Domain=com.apple.LocalAuthentication Code=-1004 "User interaction is required." UserInfo=0x171470a00 {NSLocalizedDescription=User interaction is required.}
ich die touchid Alarm präsentiert haben versucht (ich nie die touchid Alarm sehen), wenn die Anwendung bereits ausgeführt wird, wenn seine nur im Vordergrund, scheint keine Rolle zu. Es ist jedes Mal nach dem ersten Start der App unterbrochen.
Wer sonst läuft in das?
Als Referenz hier ist der Code ich verwende:
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];
});
}
});
}];
}
}
bekommen dies auch. Wirklich anying – gallileo
Ich erfahre den gleichen Fehler, aber in meinem Fall, auch wenn die App bereits aktiv und im Vordergrund ist. Ich arbeite an einem Framework, das von einer anderen App verwendet wird, aber mein Code funktioniert gut, wenn ich es in einem eigenständigen Projekt versuchte. Ich habe den Code in der ViewDidAppear des ursprünglichen View-Controller platziert, aber es führt immer zu einem Fehler. – schystz
@schystz Ich habe das gleiche ... Ich schwöre es ist, nachdem ich meine Bündel-ID geändert habe .... Hast du eine Lösung gefunden? !! – maxisme