背景
我使用Firebase登录我的应用。 我通过电子邮件地址功能使用登录。 在开始使用新的xCode beta并将代码更新为Swift 3
之后,错误就开始了您可以在此处查看问题的原型:https://bitbucket.org/gilosborne/firebasetest
错误:
当我尝试登录时,我收到错误,"访问钥匙串时发生错误"。
我没有以任何方式使用Apple钥匙串,我相信它指的是钥匙串的提及:https://firebase.google.com/docs/auth/ios/errors
当我输入错误的电子邮件地址时,我收到正确的错误,指出电子邮件地址不匹配。创建一个新帐户仍然有效。使用现有电子邮件地址正确登录时,我只会收到错误消息。
在查看上面的firebase文档后,我打印了: 打印(错误?.userInfo [NSLocalizedFailureReasonErrorKey])
和
打印(错误?.userInfo [NSUnderlyingErrorKey])
尝试了解更多并获得这些控制台日志
可选(SecItemAdd(-34018))
零
我对iOS开发非常陌生,但我花了几个小时或谷歌搜索并绞尽脑汁试图解决这个问题并取得了进展。
同样,一切都运转得很好。我所做的只是更新到Swift 3.0,这开始发生了。任何帮助都会非常棒,谢谢!
PS。对不起,如果我错过了什么,这是我第一次发帖。
答案 0 :(得分:19)
尝试启用项目功能中的钥匙串共享'目标。这对我有用。 Keychain Sharing
答案 1 :(得分:0)
我在Firebase的release notes中找到了这个问题:
在iOS模拟器上运行时,不同应用程序之间共享身份验证状态: 描述:在同一iOS模拟器上运行两个或多个使用Firebase身份验证的应用程序时,iOS钥匙串存在问题,导致身份验证状态在不同的应用程序之间共享。这意味着,如果您登录某个应用,然后再打开第二个应用,则可能会找到要登录的用户。 解决方法:要么在同一个模拟器实例上使用两个不同的身份验证应用程序,要么在两个测试之间手动退出应用程序。
不确定它是否已经修复,但似乎在遇到问题时描述了我的情况。