LocalAuthentication の使用に問題があり、iOS 7.0 をサポートする
私がしようとしているとき
import LocalAuthentication
対象の iOS バージョンが 8.0 未満の場合、クラッシュします。
ビルド段階でLocalAuthentication.frameworkをオプションとしてマークし、次を呼び出してクラスの可用性を確認しようとしました。
var isTouchIDSupported: Bool {
if let contextClass: AnyClass = NSClassFromString("LAContext") {
return LAContext().canEvaluatePolicy(.DeviceOwnerAuthenticationWithBiometrics, error: nil)
}
return false
}
次のように LAContext() 文字列にコメントしてもクラッシュしません。
var isTouchIDSupported: Bool {
if let contextClass: AnyClass = NSClassFromString("LAContext") {
//return LAContext().canEvaluatePolicy(.DeviceOwnerAuthenticationWithBiometrics, error: nil)
}
return false
}
コードの任意の場所でLAクラス(たとえばLAContext)にアクセスすると、アプリが起動された最初の数秒でクラッシュします。ここで何が間違っていますか?
このクラッシュのコンソール ログ:
dyld: Symbol not found: _objc_isAuto
Referenced from: /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
Expected in: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.1.sdk/usr/lib/libobjc.A.dylib
in /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation