2016-05-02 21 views
0

我跟踪了苹果的示例代码,集成了touch id和keychain。 https://developer.apple.com/library/ios/samplecode/KeychainTouchID/Introduction/Intro.htmlKeychainTouchID iOS 8和9

尽管iOS9中的一切都很好,但在iOS8中,如果我尝试访问保存的加密信息,操作系统不会显示扫描弹出窗口并要求用户扫描手指,它只是马上给我提供数据。我需要将什么样的修改应用于Apple的示例才能使它在iOS8中正常工作,并在需要时显示扫描弹出窗口?

感谢

回答

0

只要检查该字典创建为addItemAsync

NSDictionary *attributes = @{ 
     (__bridge id)kSecClass: (__bridge id)kSecClassGenericPassword, 
     (__bridge id)kSecAttrService: @"SampleService", 
     (__bridge id)kSecValueData: [@"SECRET_PASSWORD_TEXT" dataUsingEncoding:NSUTF8StringEncoding], 
     (__bridge id)kSecUseNoAuthenticationUI: @YES, 
     (__bridge id)kSecAttrAccessControl: (__bridge_transfer id)sacObject 

kSecUseNoAuthenticationUI在iOS版9

extern const CFStringRef kSecUseNoAuthenticationUI 
     __OSX_AVAILABLE_BUT_DEPRECATED_MSG(__MAC_10_10, __MAC_10_11, __IPHONE_8_0, __IPHONE_9_0, "Use a kSecAuthenticationUI instead."); 
extern const CFStringRef kSecUseAuthenticationUI 
     __OSX_AVAILABLE_STARTING(__MAC_10_11, __IPHONE_9_0); 

这应该有助于不赞成值。