用途:帮助 iOS/macOS 应用安全存储令牌、密码、API 密钥与加密密钥,并排查 SecItem 相关错误。
主要能力:以“数据库表”心智模型讲解 SecItemAdd(INSERT)、SecItemCopyMatching(SELECT)、SecItemUpdate(UPDATE)、SecItemDelete(DELETE)四个函数;说明各类别(通用密码、互联网密码、证书、密钥、身份)及其唯一性主键,例如通用密码为 kSecAttrService + kSecAttrAccount + kSecAttrAccessGroup;解释参数块五类属性(Class、Attributes、Search、Return、Value)与各函数适用组合;说明 kSecMatchLimit 默认值、返回类型与 kSecReturn* 标志的对应关系;梳理 kSecAttrAccessible 各等级及后台执行陷阱;介绍 SecAccessControl 生物识别门控与 LAContext 复用时长;对比 Keychain Access Groups 与 App Groups 及 Team ID 前缀问题。
使用方式:资料给出“先更新、不存在再添加”的安全写入模式,避免删除后重建导致竞态与元数据丢失;强调查询必须包含全部主键属性;后台读取的令牌应使用 kSecAttrAccessibleAfterFirstUnlock;遇到 errSecInteractionNotAllowed 不应删除条目,而应等设备解锁后重试。
适用场景:存储认证令牌、调试钥匙串读写失败、选择数据保护等级、为条目添加 Face ID/密码保护、在应用与扩展间共享凭据、从 UserDefaults/@AppStorage 迁移敏感数据、后台上下文读写钥匙串。
限制:资料未提供该技能的安装命令、版本、收费或平台支持范围;内容以概念与代码模式为主,具体 API 行为仍以 Apple 官方文档为准。