警告:在iOS 11.0中,touchID已被弃用。

3

我正在支持我的应用程序中的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 11 的,所以它会显示已弃用。 - Tj3n
@Tj3n 这是正确的 - 谢谢。我的测试目标中iOS部署目标有点更难找到。 - Noroxs
2个回答

2
您的项目或目标版本可以解决这个问题。
我们在两个版本(iOS 11.x和iOS 10.x)中测试了您的代码。
如果您的项目目标版本是iOS 11+,则根据苹果文档,它将显示此警告:LAError.Code这些值在iOS 11.0中已经被弃用。
测试结果 - iOS 11.x

enter image description here

测试结果 - iOS 10.x

enter image description here


0

当您设置某些iOS版本的部署目标时,该版本的过期消息将显示在这种情况下,它是针对iOS 11的,降低部署目标将停止显示警告。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接