开发者社区> 问答> 正文

如何在密钥链中查找添加了SecItemAdd的证书

以下苹果的文档,我编写了以下代码,将证书添加到macos上的登录密钥链中。

let certUrl = Bundle.main.url(forResource: "cert", withExtension: "cer")!
let certData = try! Data(contentsOf: certUrl)
let cert = SecCertificateCreateWithData(nil, certData as CFData)!
let addQuery: [String: Any] = [
    kSecClass as String: kSecClassCertificate,
    kSecValueRef as String: cert,
    kSecAttrLabel as String: "My Certificate"
]
let status = SecItemAdd(addQuery as CFDictionary, nil)
guard status == errSecSuccess else {
    print(status)
    return true
}
print("cert added")
return true

它可以工作,但问题是,当我打开密钥链访问应用程序时,我无法在登录密钥链的证书类别中找到添加的证书。

我再次尝试运行代码,但由于重复的证书错误,代码失败了。因此,证书一定是添加的。我想知道如何在密钥链访问中找到它?还是使用SecItemAdd添加的证书总是隐藏在密钥链访问应用程序中?

MacOS版本:10.15.1

展开
收起
游客5akardh5cojhg 2019-12-14 18:14:53 982 0
1 条回答
写回答
取消 提交回答
  • 我使用的是Mac Catalyst。切换到可可应用程序可以让它工作。

    2019-12-14 18:15:10
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载