一部の 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 ポップアップを無効にする方法について、いくつかの指針を教えていただければ幸いです。ありがとう