调用SecItemAdd时产生的错误:-34018

RSA的加解密算法里用到keychain的一些操作,比如:


这个 “SecItemAdd” 方法,绝大部分时间都是执行正确的,但在iOS 8.4.1系统偶尔会添加失败,status的值为: -34018(errSecMissingEntitlement)

经过分析,是iOS系统的一个bug,当app频繁的从钥匙串请求数据的时候就会造成这种问题,所以尽量减少对keychain的访问,一个解决办法是:在内存中缓存这个值


以下是来自苹果官方回复:

我们终于能够在ios8.3里重现-34018错误,这是我们查找问题根源和修复问题的第一步。

可是,我们并不能给出确切的解决时间,但是由于已经影响了很多的开发者,我们也非常希望尽快解决。

作为变通方案,我建议在在didFinishLaunchingWithOptions 和applicationDidBecomeActive: 两个方法之前添加一个小的延时给获取字符串争取一点时间。然而,好像并没有明显的作用,这就意味着除了重启app确实没有更好的解决方法。


参考: http://www.she.vc/article/18-120660-0.html


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值