钥匙串访问iOS问题

时间:2020-05-05 17:05:37

标签: ios keychain

在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。

欢迎任何指针,谢谢。

1 个答案:

答案 0 :(得分:0)

kSecValueData必须是CFDataRef而不是CFStringRef。参见https://developer.apple.com/documentation/security/ksecvaluedata?language=objc