ios - 钥匙串访问 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。
欢迎任何指点,谢谢。
解决方案
kSecValueData
必须CFDataRef
不是CFStringRef
. 请参阅https://developer.apple.com/documentation/security/ksecvaluedata?language=objc
推荐阅读
- python - 如何在 Windows 10 PC 上使用 Python 3.7 和 Mutagen 写入 ID3 标签 WFED URL 框架
- c# - Model Binding with Nested JSON Objects
- javascript - 如何插入 HTML 内容而不用 JS 覆盖默认内容
- mono - How to build historgram of methods by time spent inside with Mono?
- json - 如何使用 VBScript 或批处理文件从 JSON 文件中下载和获取值?
- javascript - Orderby dictionary like data structure by value angular
- python - 将列附加到包含另一行重复计数的数据框
- c# - 使用 ElasticSearch 过滤产品 concat a lot of filter
- python - Python根据值从列表中迭代和删除键
- powershell - 无论脚本是在“常规”powershell 控制台还是在 powershell ISE 中运行,如何以相同的方式处理错误?