Можем ли мы протестировать Face ID в симуляторе?
4 ответов
симулятор не распознает лицо, но позволяет имитировать совпадающие и не совпадающие лица, если вы включили С Face ID
.
добавьте следующий код в контроллер вида и попробуйте с Face-ID
import LocalAuthentication
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
localAuthentication()
}
func localAuthentication() -> Void {
let laContext = LAContext()
var error: NSError?
let biometricsPolicy = LAPolicy.deviceOwnerAuthenticationWithBiometrics
if (laContext.canEvaluatePolicy(biometricsPolicy, error: &error)) {
if let laError = error {
print("laError - \(laError)")
return
}
var localizedReason = "Unlock device"
if #available(iOS 11.0, *) {
if (laContext.biometryType == LABiometryType.faceID) {
localizedReason = "Unlock using Face ID"
print("FaceId support")
} else if (laContext.biometryType == LABiometryType.touchID) {
localizedReason = "Unlock using Touch ID"
print("TouchId support")
} else {
print("No Biometric support")
}
} else {
// Fallback on earlier versions
}
laContext.evaluatePolicy(biometricsPolicy, localizedReason: localizedReason, reply: { (isSuccess, error) in
DispatchQueue.main.async(execute: {
if let laError = error {
print("laError - \(laError)")
} else {
if isSuccess {
print("sucess")
} else {
print("failure")
}
}
})
})
}
}
}
аутентификация FaceID предложит вам впервые разрешить обнаружение FaceID для вашего приложения.
Теперь включить Face ID зачисления и запустите приложение для тестирования Face ID simulation Testing.
вот результат моделирования для сопоставления и несоответствия граней.
результат для сопоставления лица:
результат для несоответствующего лица:
симулятор просто имитирует результат правильного и неудачного распознавания лиц, так же, как это происходит с Touch ID. Это не распознает лица.
Как вы спрашиваете но после включения этого, что я могу сделать?
Как и набор touch Id, вы можете проверить вещи с помощью face-Id на iPhone-X. Однако симулятор имеет некоторые ограничения, такие как Appstore и т. д. С Face-Id зачисления вы можете сделать следующие вещи -
- используйте Face ID для совершения покупок.
- войдите с помощью Face ID (войдите в приложения).
- автозаполнение паролей в Safari.
- в iTunes Store, App Store, и магазин iBooks.
то же самое, что дает @krunal только 2-й, Если должно быть за пределами 1-го.
import LocalAuthentication
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
localAuthentication()
}
func localAuthentication() -> Void {
let laContext = LAContext()
var error: NSError?
let biometricsPolicy = LAPolicy.deviceOwnerAuthenticationWithBiometrics
if (laContext.canEvaluatePolicy(biometricsPolicy, error: &error)) {
var localizedReason = "Unlock device"
if #available(iOS 11.0, *) {
if (laContext.biometryType == LABiometryType.faceID) {
localizedReason = "Unlock using Face ID"
print("FaceId support")
} else if (laContext.biometryType == LABiometryType.touchID) {
localizedReason = "Unlock using Touch ID"
print("TouchId support")
} else {
print("No Biometric support")
}
} else {
// Fallback on earlier versions
}
laContext.evaluatePolicy(biometricsPolicy, localizedReason: localizedReason, reply: { (isSuccess, error) in
DispatchQueue.main.async(execute: {
if let laError = error {
print("laError - \(laError)")
} else {
if isSuccess {
print("sucess")
} else {
print("failure")
}
}
})
})
}
//This should be outside of if
if let laError = error {
print("laError - \(laError)")
return
}
}
}