이 문제는 즉시 응용 프로그램 출시 후 발생 및 evaluatePolicy의 응답 블록에서 현재 뷰 컨트롤러 또는 창을 변경 : 예를 들어 아래를 참조 localizedReason : 응답 :.
터치 ID의 사용 가능 여부 확인 (canEvaluatePolicy : error :) 후 잠시 기다려주세요.
넣어 evaluatePolicy : localizedReason : 대답하십시오 dispatch_after 내부()이 같은 :
https://github.com/RungeZhai/TouchIDIssue
Aviram의 : 나는 샘플 프로젝트뿐만 아니라 여기에 솔루션을했습니다
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, .5f * NSEC_PER_SEC), dispatch_get_main_queue(), ^{
[context evaluatePolicy:LAPolicyDeviceOwnerAuthenticationWithBiometrics
localizedReason:NSLocalizedString(@"Use Touch ID to Unlock", nil)
reply:^(BOOL success, NSError *error) {
if (success) {
}else {
if (error.code == kLAErrorUserCancel) {
}
}
}];
});
대답 (godmoney)도 잘 작동합니다.
나는 이것이 몇 가지 응용 프로그램에서 보았 기 때문에 OS의 버그라고 생각합니다. 레이더를 채우는 것 외에는 할 수있는 일이 많지 않습니다. – EmilioPelaez
적어도 하나의 앱에서 해결 된 것을 보았습니다. 이 문제도 해결하고 싶습니다. – YogevSitton
TouchId 코드를 viewDidLoad에서 viewDidAppear로 이동하여 앱에서이 문제를 해결했습니다. 타이밍이 중요하다고 생각합니다. – Daniel