在iOS上访问钥匙串时遇到问题。
CFMutableDictionaryRef query = CFDictionaryCreateMutable( nullptr, 0, nullptr, nullptr );
CFDictionaryAddValue( query, kSecClass, kSecClassGenericPassword );
CFDictionaryAddValue( query, kSecAttrService, str_service );
CFDictionaryAddValue( query, kSecAttrAccount, str_account );
CFDictionaryAddValue( query, kSecAttrAccessible, kSecAttrAccessibleWhenUnlocked );
CFDictionaryAddValue( query, kSecValueData, str_date );
const auto res = SecItemAdd( query, nullptr );
如果我删除str_data属性,此代码在Mac上运行良好,在iOS上运行良好。但是,一旦尝试添加数据,我将返回可怕的-50错误代码。
3个str_参数都是CFString。
欢迎任何指针,谢谢。
答案 0 :(得分:0)
kSecValueData
必须是CFDataRef
而不是CFStringRef
。参见https://developer.apple.com/documentation/security/ksecvaluedata?language=objc