2016-05-02 50 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); 

這應該有助於不贊成值。