警告:iOS 11.0 中不推荐使用 touchID

Warning: touchID deprecated in iOS 11.0

我在我的应用程序中支持 Touch ID 和 Face ID。为了支持 iOS 的旧版本,我使用了以下代码:

if #available(iOS 11.0, *) {
    biometricsNotEnrolled = LAError.biometryNotEnrolled
    biometricsLocked = LAError.biometryLockout
} else {
    biometricsNotEnrolled = LAError.touchIDNotEnrolled
    biometricsLocked = LAError.touchIDLockout
}

switch(error) {
case biometricsNotEnrolled:
    // Do stuff
case LAError.passcodeNotSet:
    // Do stuff
case biometricsLocked:
    // Do stuff
default:
    // Do stuff
}

但是当我编译时我会得到以下警告:

warning: 'touchIDLockout' was deprecated in iOS 11.0: use LAErrorBiometryLockout

warning: 'touchIDNotEnrolled' was deprecated in iOS 11.0: use LAErrorBiometryNotEnrolled

warning: 'touchIDNotAvailable' was deprecated in iOS 11.0: use LAErrorBiometryNotAvailable

如何消除警告?

当您设置某些 iOS 版本的部署目标时,将显示该版本的弃用消息,在本例中为 iOS 11,降低部署目标将停止显示警告。

您的项目或目标版本可以解决这个问题。

这里测试了你在两个版本中的代码 - iOS 11.x & iOS 10.x

如果您的项目目标版本是 iOS 11+,那么它将根据 LAError.Code 的 Apple 文档向您显示此警告,这些值在 iOS 11.0 中已弃用。


测试结果 - iOS 11.x


测试结果 - iOS 10.x