我在一些 touchId 应用程序中看到SecItemUpdate
了 touchId UI 屏幕从不弹出并且更新仍然发生。我的应用程序需要类似的功能,并且根据我从 Apple Developer's guide 中阅读的内容(我的理解可能是错误的)提出了一些选项,但它们似乎不起作用。这是我到目前为止所做的。
设置kSecUseNoAuthenticationUI
为YES
,返回错误代码-25308
。设置kSecUseNoAuthenticationUI
为NO
,返回错误代码-50
。如果我不包含kSecUseNoAuthenticationUI
,则会弹出默认身份验证 UI。
NSDictionary *query = @{(__bridge id)kSecClass: (__bridge id)kSecClassGenericPassword,
(__bridge id)kSecAttrService: @"SampleService",
(__bridge id)kSecUseNoAuthenticationUI: @YES
};
NSDictionary *changes = @{
(__bridge id)kSecValueData: [@"UPDATED_SECRET_PASSWORD_TEXT" dataUsingEncoding:NSUTF8StringEncoding]
};
dispatch_async(dispatch_get_global_queue( DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
OSStatus status = SecItemUpdate((__bridge CFDictionaryRef)query, (__bridge CFDictionaryRef)changes);
NSString *msg = [NSString stringWithFormat:NSLocalizedString(@"SEC_ITEM_UPDATE_STATUS", nil), [self keychainErrorToString:status]];
[super printResult:self.textView message:msg];
});]
所以我在这一点上迷路了。感谢您能否给我一些关于如何在 SecItemUpdate 上禁用此 touchId UI 弹出窗口的指示。谢谢