KeychainTouchID iOS 8 和 9
KeychainTouchID iOS 8 and 9
我按照apple的示例代码集成了touch id和keychain。
https://developer.apple.com/library/ios/samplecode/KeychainTouchID/Introduction/Intro.html
虽然在 iOS 9 中一切正常,但在 iOS8 中存在一个问题,如果我尝试访问保存的加密信息,OS 不会显示扫描弹出窗口并要求用户扫描那里的手指,它会立即给我数据。我需要对 apple 的示例进行哪些修改才能使其在 iOS8 中正常工作并在需要时显示扫描弹出窗口?
谢谢
只需检查此字典创建是否有 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);
这应该有所帮助。
我按照apple的示例代码集成了touch id和keychain。 https://developer.apple.com/library/ios/samplecode/KeychainTouchID/Introduction/Intro.html
虽然在 iOS 9 中一切正常,但在 iOS8 中存在一个问题,如果我尝试访问保存的加密信息,OS 不会显示扫描弹出窗口并要求用户扫描那里的手指,它会立即给我数据。我需要对 apple 的示例进行哪些修改才能使其在 iOS8 中正常工作并在需要时显示扫描弹出窗口?
谢谢
只需检查此字典创建是否有 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);
这应该有所帮助。