首页 > 解决方案 > 钥匙串访问 iOS 问题

问题描述

在 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_参数都是CFStrings。

欢迎任何指点,谢谢。

标签: ioskeychain

解决方案


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


推荐阅读