KeychainTouchID iOS 8 и 9

Я следовал примеру кода Apple при интеграции сенсорного идентификатора и цепочки для ключей. https://developer.apple.com/library/ios/samplecode/KeychainTouchID/Introduction/Intro.html

В то время как в iOS 9 все работает отлично, в iOS8 есть проблема, из-за которой, если я пытаюсь получить доступ к сохраненной зашифрованной информации, ОС не отображает всплывающее окно сканирования и не просит пользователя сканировать там пальцы, она просто дает мне данные сразу. Какие модификации мне нужно применить к образцу Apple, чтобы он правильно работал в iOS8 и при необходимости отображал всплывающее окно сканирования?

Спасибо


person Bill    schedule 02.05.2016    source источник


Ответы (1)


Просто проверьте это создание словаря для 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);

Это должно помочь.

person Amit Kalghatgi    schedule 31.05.2016