热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

iOSKeychain写入值导致错误代码-34018

如何解决《iOSKeychain写入值导致错误代码-34018》经验,为你挑选了2个好方法。

我有一个iOS应用程序,它将一些敏感信息存储在钥匙串中.在将值写入钥匙串时,我收到错误代码-34018.

我目前正在使用Apple的iOS KeyChainItemWrapper类.

以下两行代码都接收相同的错误代码.

OSStatus res1 = SecItemCopyMatching((__bridge CFDictionaryRef)genericPasswordQuery, (CFTypeRef *)&attributes);
OSStatus res = SecItemUpdate((__bridge CFDictionaryRef)updateItem, (__bridge CFDictionaryRef)tempCheck);

这个问题不是每次都会发生,而是间歇性地发生.一旦我收到此错误,我就无法再将任何值写入钥匙串.

我打印了错误描述,如下所示:

NSError *error = [NSError errorWithDomain:NSOSStatusErrorDomain code:res userInfo:nil];

这就是错误打印出来的:

Error: Error Domain=NSOSStatusErrorDomain Code=-34018 "The operation couldn’t be completed. (OSStatus error -34018.)"

iCaramba.. 34

似乎这是Keychain中的一个错误,只有当您从xcode启动应用程序时才会出现该错误.见这里:https://github.com/soffes/sskeychain/issues/52

我们调试了很多,当应用程序从后台启动时,访问钥匙串似乎是一个问题.这只发生在调试器上(即从Xcode启动时).我们认为这个问题可能与我们的情况有关,即使它应该被操作系统杀死,调试器也能保持应用程序的活动状态.我们实际上尝试运行应用程序,然后将其置于后台并启动许多其他应用程序以占用RAM.使用调试器时,从后台恢复应用程序时出现错误,而没有调试器则没有(我们每次至少运行10次测试).


Zeb.. 27

如果有人会带着这个错误和XCode8与iOS10一起回来,可能你必须在选项卡中启用KeyChain ShareCapabilities:

激活KeychainShare ON 在此输入图像描述



1> iCaramba..:

似乎这是Keychain中的一个错误,只有当您从xcode启动应用程序时才会出现该错误.见这里:https://github.com/soffes/sskeychain/issues/52

我们调试了很多,当应用程序从后台启动时,访问钥匙串似乎是一个问题.这只发生在调试器上(即从Xcode启动时).我们认为这个问题可能与我们的情况有关,即使它应该被操作系统杀死,调试器也能保持应用程序的活动状态.我们实际上尝试运行应用程序,然后将其置于后台并启动许多其他应用程序以占用RAM.使用调试器时,从后台恢复应用程序时出现错误,而没有调试器则没有(我们每次至少运行10次测试).



2> Zeb..:

如果有人会带着这个错误和XCode8与iOS10一起回来,可能你必须在选项卡中启用KeyChain ShareCapabilities:

激活KeychainShare ON 在此输入图像描述


不幸的是,即使启用了钥匙串共享,也会出现此问题.
推荐阅读
author-avatar
茫茫人海啊啊啊_574
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有