Tôi đã và đang tích hợp hỗ trợ Touch ID vào một ứng dụng tôi đang làm việc. Tuy nhiên nó diễn xuất rất không nhất quán. Một trong những vấn đề chung tôi thấy là trên một phóng ứng dụng tươi nó hoạt động như mong đợi, nhưng sau đó trên backgrounding ứng dụng, và đưa nó vào foreground Tôi nhận được một lỗi trở lại từLỗi iOS 8 Touch ID "Yêu cầu tương tác người dùng".
evaluatePolicy:localizedReason:reply:
Nó không thậm chí làm cho rất nhiều ý nghĩa (tôi chưa bao giờ nhìn thấy cảnh báo touchid)
Error Domain=com.apple.LocalAuthentication Code=-1004 "User interaction is required." UserInfo=0x171470a00 {NSLocalizedDescription=User interaction is required.}
tôi đã cố gắng trình bày các báo touchid khi ứng dụng đang chạy, khi nó chỉ là cận cảnh, dường như không thành vấn đề. Của nó bị hỏng trên mỗi lần sau khi khởi động ứng dụng ban đầu.
Bất kỳ ai khác đều tham gia vào điều này?
Để tham khảo, đây là mã Tôi đang sử dụng:
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];
});
}
});
}];
}
}
cũng nhận được điều này. Thực sự anoying – gallileo
Tôi đang gặp cùng một lỗi nhưng trong trường hợp của tôi ngay cả khi ứng dụng đã hoạt động và ở nền trước. Tôi đang làm việc trên một khuôn khổ được sử dụng bởi một ứng dụng khác nhưng mã của tôi hoạt động tốt khi tôi thử nó trên một dự án độc lập. Tôi có mã được đặt trong viewDidAppear của bộ điều khiển xem ban đầu nhưng nó luôn dẫn đến lỗi. – schystz
@schystz Tôi có cùng ... Tôi thề là sau khi tôi thay đổi id gói .... Bạn đã tìm thấy một giải pháp? !! – maxisme