找不到符号:_LAErrorDomain

Symbol not found: _LAErrorDomain

在低于版本 8.3 的 iOS 上使用 LAErrorDomain(来自 Touch ID 的本地身份验证框架)时,应用程序崩溃 Symbol not found: _LAErrorDomain。不过在 iOS 8.3 上工作正常。

使用 Xcode 6.3.2 和 iOS SDK 8.3 编译。更新:仍然与 Xcode 6.4 和 iOS SDK 8.4 相同。

这真的很奇怪。我真的不明白是什么原因造成的,因为 LAErrorDomain 自 iOS 8.0 以来应该作为常量可用。也许有人知道这里的真正问题,但这是我的解决方法:

幸运的是,本地身份验证的错误域也在 <LocalAuthentication/LAPublicDefines.h> 中定义为一个宏,如果您使用本地身份验证,它已经被导入。

您可以直接使用 kLAErrorDomain(更准确地说是 @kLAErrorDomain,因为宏被定义为字符串文字)或定义您自己的常量:

// Workaround for iOS below 8.3: LAErrorDomain constant can't be found and leads to a crash
NSString *const MyLAErrorDomain = @kLAErrorDomain;