快速跨应用程序身份验证不起作用

时间:2019-06-21 15:30:34

标签: ios swift firebase firebase-authentication

我正在尝试让我的应用程序和应用程序的共享扩展名共享一个登录令牌,但是在设置访问组后登录时,登录失败。我正在使用密码验证。

我尝试登录时未设置访问组,但工作正常,但是第二次设置访问组失败。我已在两个应用程序上启用了钥匙串共享,并将钥匙串组设置为相同,并正确设置了权利。

这是我正在使用的用于设置访问组的代码:

    private func switchGroup() {
        do {
            try Auth.auth().useUserAccessGroup("<<<GROUP_NAME>>>")
        }
        catch let error as NSError {
            print("Error changing the user group \(error.localizedDescription)")
        }
    }

这是在我登录,注册并尝试获取当前用户之前调用的。

这是我的应享权利:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>keychain-access-groups</key>
    <array>
        <string>$(AppIdentifierPrefix)<<<BUNDLE_IDENITIFIER>>></string>
    </array>
</dict>
</plist>

应该发生的是登录成功。相反,登录错误会显示以下错误消息:

可选   -某些错误域= FIRAuthErrorDomain代码= 17995“访问钥匙串时发生错误。@c NSError.userInfo字典中的@c NSLocalizedFailureReasonErrorKey字段将包含有关遇到的错误的更多信息” UserInfo = {FIRAuthErrorUserInfoNameName == ERROR_KEYCHAIN_ERROR,NSLocalizedFailureReason = SecItemAdd(-34018),NSLocalizedDescription =访问钥匙串时发生错误。 @c NSError.userInfo字典中的@c NSLocalizedFailureReasonErrorKey字段将包含有关遇到的错误的更多信息}

您能提供的任何帮助都会很棒。谢谢。

1 个答案:

答案 0 :(得分:0)

经过有关Firebase支持的讨论后,我遇到的问题是钥匙串访问组需要这样读取:... Xcode中还有一个错误,当您通过功能部分添加此错误时,$ (AppIdentifierPrefix)已添加,这是错误的。此外,钥匙串访问组在整个应用程序中必须保持一致。一旦我添加了固定功能,一切都会正常进行。